@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/internal/server.ts
CHANGED
|
@@ -54,6 +54,7 @@ import {
|
|
|
54
54
|
parseCursorOriginRepoScope,
|
|
55
55
|
} from "../channels/origin/cursor-account.js";
|
|
56
56
|
import { findOriginChannelTargets } from "../channels/origin/origin-channel.js";
|
|
57
|
+
import { appendSlackQuietHint } from "../channels/slack/agentic-posted.js";
|
|
57
58
|
import { allowAll, bearerAuth, localDevStrict } from "../channels.js";
|
|
58
59
|
import type {
|
|
59
60
|
AgentProject,
|
|
@@ -145,6 +146,10 @@ import {
|
|
|
145
146
|
readJsonObject,
|
|
146
147
|
requireSessionOwner,
|
|
147
148
|
} from "./http-channel.js";
|
|
149
|
+
import {
|
|
150
|
+
incomingHeadersToFetch,
|
|
151
|
+
incomingRequestHost,
|
|
152
|
+
} from "./incoming-headers-to-fetch.js";
|
|
148
153
|
import { DEFAULT_SERVE_PORT, listenHttpServer } from "./listen-port.js";
|
|
149
154
|
import {
|
|
150
155
|
createLocalControlPlane,
|
|
@@ -233,13 +238,18 @@ import {
|
|
|
233
238
|
unregisterSessionRunFatalFlush,
|
|
234
239
|
} from "./session-run-log.js";
|
|
235
240
|
import { sessionUrlsForRequest } from "./session-urls.js";
|
|
241
|
+
import {
|
|
242
|
+
readSkillDetail,
|
|
243
|
+
skillListEntry,
|
|
244
|
+
UnknownSkillError,
|
|
245
|
+
} from "./skill-catalog.js";
|
|
236
246
|
import { flushLocalStartLog, selectStartLogStore } from "./start-log-store.js";
|
|
237
247
|
import { catalogDetailEntry, catalogListEntry } from "./tool-catalog.js";
|
|
238
248
|
|
|
239
249
|
function memoryHealthFields(engines: readonly SessionEngine[]) {
|
|
240
250
|
return collectMemoryHealthFields({
|
|
241
251
|
eventLog: () =>
|
|
242
|
-
sumEventLogStats(engines.map(
|
|
252
|
+
sumEventLogStats(engines.map(engine => engine.eventLogMemoryStats())),
|
|
243
253
|
});
|
|
244
254
|
}
|
|
245
255
|
|
|
@@ -276,7 +286,7 @@ function localControlPlaneRoute(
|
|
|
276
286
|
): RouteLocalIngressContinuation | undefined {
|
|
277
287
|
for (const runtime of runtimes) {
|
|
278
288
|
if (runtime.controlPlane !== undefined) {
|
|
279
|
-
return
|
|
289
|
+
return input => runtime.controlPlane!.routeContinuation(input);
|
|
280
290
|
}
|
|
281
291
|
}
|
|
282
292
|
return undefined;
|
|
@@ -285,7 +295,7 @@ function localControlPlaneRoute(
|
|
|
285
295
|
function firstLocalControlPlane(
|
|
286
296
|
runtimes: readonly MountedRuntime[]
|
|
287
297
|
): LocalControlPlane | undefined {
|
|
288
|
-
return runtimes.find(
|
|
298
|
+
return runtimes.find(runtime => runtime.controlPlane !== undefined)
|
|
289
299
|
?.controlPlane;
|
|
290
300
|
}
|
|
291
301
|
|
|
@@ -324,7 +334,7 @@ export async function startServer(
|
|
|
324
334
|
const label = slug === "" ? project.name : `${slug} (${project.name})`;
|
|
325
335
|
throw new Error(
|
|
326
336
|
`Refusing to serve agent ${label} — it has errors:\n${formatDiagnostics(
|
|
327
|
-
project.diagnostics.filter(
|
|
337
|
+
project.diagnostics.filter(d => d.severity === "error")
|
|
328
338
|
)}`
|
|
329
339
|
);
|
|
330
340
|
}
|
|
@@ -340,12 +350,9 @@ export async function startServer(
|
|
|
340
350
|
noControlPlane?: boolean;
|
|
341
351
|
/** `--cursor-scm-proxy`: every cursorAccount SCM pack routes via the backend forwarder. */
|
|
342
352
|
cursorScmProxy?: boolean;
|
|
343
|
-
/** Deprecated alias (`--cursor-github-proxy`); same effect as cursorScmProxy. */
|
|
344
|
-
cursorGithubProxy?: boolean;
|
|
345
353
|
};
|
|
346
354
|
const noControlPlane = hosted.noControlPlane === true;
|
|
347
|
-
const scmProxyRequested =
|
|
348
|
-
hosted.cursorScmProxy === true || hosted.cursorGithubProxy === true;
|
|
355
|
+
const scmProxyRequested = hosted.cursorScmProxy === true;
|
|
349
356
|
const runSchedules = options.schedules ?? !dev;
|
|
350
357
|
const runReminders = options.reminders ?? !dev;
|
|
351
358
|
|
|
@@ -355,7 +362,7 @@ export async function startServer(
|
|
|
355
362
|
process.env.CURSOR_AGENTKIT_VERSION ??= packageVersion();
|
|
356
363
|
|
|
357
364
|
const authoredOtel = pickAuthoredOtel(
|
|
358
|
-
mounts.map(
|
|
365
|
+
mounts.map(m => ({
|
|
359
366
|
slug: m.slug,
|
|
360
367
|
name: m.project.name,
|
|
361
368
|
otel: m.project.otel,
|
|
@@ -419,8 +426,8 @@ export async function startServer(
|
|
|
419
426
|
noControlPlane,
|
|
420
427
|
config: effectiveCursorEvents,
|
|
421
428
|
auth: cursorEventsAuth,
|
|
422
|
-
v1Mounts: mounts.filter(
|
|
423
|
-
v2Mounts: mounts.filter(
|
|
429
|
+
v1Mounts: mounts.filter(mount => !isV2Project(mount.project)),
|
|
430
|
+
v2Mounts: mounts.filter(mount => isV2Project(mount.project)),
|
|
424
431
|
githubRepos: cursorGithubConfig.cursorEvents?.repos ?? [],
|
|
425
432
|
originRepos: cursorOriginScope?.repos ?? [],
|
|
426
433
|
});
|
|
@@ -700,7 +707,7 @@ export async function startServer(
|
|
|
700
707
|
await flushLocalStartLog({ store: startLogStore, startLogId });
|
|
701
708
|
};
|
|
702
709
|
if (sessionRunLog !== undefined) {
|
|
703
|
-
registerSessionRunFatalFlush(async
|
|
710
|
+
registerSessionRunFatalFlush(async error => {
|
|
704
711
|
await flushHostedExecutionProcessDeath({
|
|
705
712
|
flushProcessDeath: (reason, flushError) =>
|
|
706
713
|
sessionRunLog.flushProcessDeath(reason, flushError),
|
|
@@ -725,7 +732,7 @@ export async function startServer(
|
|
|
725
732
|
// dispatching runner is only interposed when a mount needs it. An
|
|
726
733
|
// injected test runner receives every turn, grokbot included.
|
|
727
734
|
const hasGrokBotMounts = mounts.some(
|
|
728
|
-
|
|
735
|
+
mount => mount.project.agent.runtime === "grokbot"
|
|
729
736
|
);
|
|
730
737
|
// Fail closed like cursor-account GitHub/MCP: grokbot turns execute on the
|
|
731
738
|
// signed-in account's hosted computer, so anonymous admission needs its
|
|
@@ -874,10 +881,10 @@ export async function startServer(
|
|
|
874
881
|
const localControlPlane = noControlPlane
|
|
875
882
|
? undefined
|
|
876
883
|
: await createLocalControlPlane({
|
|
877
|
-
fireSchedule:
|
|
884
|
+
fireSchedule: name => scheduleRunner.dispatch(name),
|
|
878
885
|
...(useReminderCpProtocol
|
|
879
886
|
? {
|
|
880
|
-
executeReminder:
|
|
887
|
+
executeReminder: descriptor =>
|
|
881
888
|
reminderRunner.executeFire(descriptor),
|
|
882
889
|
}
|
|
883
890
|
: {
|
|
@@ -921,21 +928,21 @@ export async function startServer(
|
|
|
921
928
|
// boot and makes /v1/dev/evals complete from the first request).
|
|
922
929
|
await evalRuns.hydrate();
|
|
923
930
|
engine.setReminders({
|
|
924
|
-
create:
|
|
925
|
-
list:
|
|
931
|
+
create: input => reminderRunner.create(input),
|
|
932
|
+
list: filter => reminderRunner.list(filter),
|
|
926
933
|
cancel: (id, reason) => reminderRunner.cancel(id, reason),
|
|
927
934
|
cancelForContinuation: (token, reason) =>
|
|
928
935
|
reminderRunner.cancelForContinuation(token, reason),
|
|
929
936
|
rekeyContinuation: (channelId, oldToken, newToken) =>
|
|
930
937
|
reminderRunner.rekeyContinuation(channelId, oldToken, newToken),
|
|
931
|
-
dispatch:
|
|
938
|
+
dispatch: id => reminderRunner.dispatch(id),
|
|
932
939
|
});
|
|
933
940
|
engine.setEvals({
|
|
934
941
|
list: () => evalRuns.list(),
|
|
935
|
-
get:
|
|
942
|
+
get: runId => evalRuns.get(runId),
|
|
936
943
|
listRunsWithActive: () => evalRuns.listRunsWithActive(),
|
|
937
|
-
start:
|
|
938
|
-
cancel:
|
|
944
|
+
start: input => evalRuns.start(input),
|
|
945
|
+
cancel: runId => evalRuns.cancel(runId),
|
|
939
946
|
});
|
|
940
947
|
const runtime: MountedRuntime = {
|
|
941
948
|
slug,
|
|
@@ -987,7 +994,7 @@ export async function startServer(
|
|
|
987
994
|
send: (message, sendOptions) =>
|
|
988
995
|
engine.send(channel.id, message, sendOptions),
|
|
989
996
|
architecture: project.agent.architecture,
|
|
990
|
-
getSession:
|
|
997
|
+
getSession: sessionId =>
|
|
991
998
|
engine.getChannelSession(channel.id, sessionId),
|
|
992
999
|
receive: (target, input) => engine.receive(target, input),
|
|
993
1000
|
callTool: (toolName, input, callOptions) =>
|
|
@@ -995,23 +1002,23 @@ export async function startServer(
|
|
|
995
1002
|
emitAssistantMessage: (sessionId, text) =>
|
|
996
1003
|
engine.emitAssistantMessage(sessionId, text),
|
|
997
1004
|
host: engine.host,
|
|
998
|
-
waitUntil:
|
|
1005
|
+
waitUntil: promise => {
|
|
999
1006
|
engine.trackBackground(promise);
|
|
1000
1007
|
},
|
|
1001
1008
|
resolveApproval: (sessionId, callId, decision, auth) =>
|
|
1002
1009
|
engine.resolveApproval(sessionId, callId, decision, auth),
|
|
1003
1010
|
resolveAuth: (sessionId, callId, decision, auth) =>
|
|
1004
1011
|
engine.resolveAuth(sessionId, callId, decision, auth),
|
|
1005
|
-
hasContinuationSession:
|
|
1012
|
+
hasContinuationSession: continuationToken =>
|
|
1006
1013
|
engine.hasContinuationSession(channel.id, continuationToken),
|
|
1007
|
-
isContinuationBusy:
|
|
1014
|
+
isContinuationBusy: continuationToken =>
|
|
1008
1015
|
engine.isContinuationBusy(channel.id, continuationToken),
|
|
1009
|
-
getContinuationLastBotMessageTs:
|
|
1016
|
+
getContinuationLastBotMessageTs: continuationToken =>
|
|
1010
1017
|
engine.getContinuationLastBotMessageTs(
|
|
1011
1018
|
channel.id,
|
|
1012
1019
|
continuationToken
|
|
1013
1020
|
),
|
|
1014
|
-
interruptContinuation:
|
|
1021
|
+
interruptContinuation: continuationToken =>
|
|
1015
1022
|
engine.interruptContinuation(channel.id, continuationToken),
|
|
1016
1023
|
logger,
|
|
1017
1024
|
artifacts: engine.artifacts,
|
|
@@ -1075,7 +1082,7 @@ export async function startServer(
|
|
|
1075
1082
|
slug,
|
|
1076
1083
|
name: project.name,
|
|
1077
1084
|
})),
|
|
1078
|
-
...memoryHealthFields(runtimes.map(
|
|
1085
|
+
...memoryHealthFields(runtimes.map(runtime => runtime.engine)),
|
|
1079
1086
|
}),
|
|
1080
1087
|
});
|
|
1081
1088
|
}
|
|
@@ -1114,34 +1121,32 @@ export async function startServer(
|
|
|
1114
1121
|
// to run via their onPullRequest / onComment / … hooks.
|
|
1115
1122
|
const collectGitHubTargetsFrom = (selected: readonly MountedRuntime[]) =>
|
|
1116
1123
|
collectGitHubTriggerTargets({
|
|
1117
|
-
mounts: selected.map(
|
|
1124
|
+
mounts: selected.map(runtime => ({
|
|
1118
1125
|
slug: runtime.slug,
|
|
1119
1126
|
channels: runtime.project.channels,
|
|
1120
|
-
buildHandlerArgs:
|
|
1127
|
+
buildHandlerArgs: channelId =>
|
|
1121
1128
|
buildChannelHandlerArgs({ runtime, channelId }),
|
|
1122
1129
|
})),
|
|
1123
1130
|
});
|
|
1124
1131
|
const collectOriginTargetsFrom = (selected: readonly MountedRuntime[]) =>
|
|
1125
1132
|
collectOriginTriggerTargets({
|
|
1126
|
-
mounts: selected.map(
|
|
1133
|
+
mounts: selected.map(runtime => ({
|
|
1127
1134
|
slug: runtime.slug,
|
|
1128
1135
|
channels: runtime.project.channels,
|
|
1129
|
-
buildHandlerArgs:
|
|
1136
|
+
buildHandlerArgs: channelId =>
|
|
1130
1137
|
buildChannelHandlerArgs({ runtime, channelId }),
|
|
1131
1138
|
})),
|
|
1132
1139
|
});
|
|
1133
1140
|
const collectGitHubTargets = () => collectGitHubTargetsFrom(runtimes);
|
|
1134
|
-
const v1Runtimes = runtimes.filter(
|
|
1135
|
-
|
|
1136
|
-
);
|
|
1137
|
-
const
|
|
1138
|
-
const v1Mounts = mounts.filter((mount) => !isV2Project(mount.project));
|
|
1139
|
-
const v2Mounts = mounts.filter((mount) => isV2Project(mount.project));
|
|
1141
|
+
const v1Runtimes = runtimes.filter(runtime => !isV2Project(runtime.project));
|
|
1142
|
+
const v2Runtimes = runtimes.filter(runtime => isV2Project(runtime.project));
|
|
1143
|
+
const v1Mounts = mounts.filter(mount => !isV2Project(mount.project));
|
|
1144
|
+
const v2Mounts = mounts.filter(mount => isV2Project(mount.project));
|
|
1140
1145
|
router.add({
|
|
1141
1146
|
method: "POST",
|
|
1142
1147
|
pattern: "/v1/webhooks/github",
|
|
1143
1148
|
auth: [localDevStrict()],
|
|
1144
|
-
handler: async
|
|
1149
|
+
handler: async request => {
|
|
1145
1150
|
const bodyText = await request.text();
|
|
1146
1151
|
const routeContinuation = localControlPlaneRoute(runtimes);
|
|
1147
1152
|
const result = await handleAgentServeTrigger({
|
|
@@ -1285,8 +1290,8 @@ export async function startServer(
|
|
|
1285
1290
|
);
|
|
1286
1291
|
if (accountBridge !== undefined && accountRefs !== undefined) {
|
|
1287
1292
|
const bridge = accountBridge;
|
|
1288
|
-
runtime.engine.setCursorAccountAuthProbe(async
|
|
1289
|
-
const ref = accountRefs.find(
|
|
1293
|
+
runtime.engine.setCursorAccountAuthProbe(async connection => {
|
|
1294
|
+
const ref = accountRefs.find(entry => entry.name === connection);
|
|
1290
1295
|
if (ref === undefined) {
|
|
1291
1296
|
return undefined;
|
|
1292
1297
|
}
|
|
@@ -1294,7 +1299,7 @@ export async function startServer(
|
|
|
1294
1299
|
});
|
|
1295
1300
|
}
|
|
1296
1301
|
const hasServerTools = runtime.project.agent.tools.some(
|
|
1297
|
-
|
|
1302
|
+
tool => tool.execution === "server"
|
|
1298
1303
|
);
|
|
1299
1304
|
// Host-bridged connections ride the same endpoint as server tools, so
|
|
1300
1305
|
// the cloud tools connection is set whenever either needs it.
|
|
@@ -1352,7 +1357,7 @@ export async function startServer(
|
|
|
1352
1357
|
runtime.evalRuns.loopbackUrl =
|
|
1353
1358
|
runtime.slug === "" ? url : `${url}/${runtime.slug}`;
|
|
1354
1359
|
}
|
|
1355
|
-
const runtimeBySlug = new Map(runtimes.map(
|
|
1360
|
+
const runtimeBySlug = new Map(runtimes.map(r => [r.slug, r]));
|
|
1356
1361
|
|
|
1357
1362
|
// --dev: spawn Vite HMR. Single-agent infers the slug base; multi-agent
|
|
1358
1363
|
// serves `/<slug>/playground` on the HMR origin (optional AGENT_SERVE_BASE
|
|
@@ -1424,8 +1429,7 @@ export async function startServer(
|
|
|
1424
1429
|
close: async () => {
|
|
1425
1430
|
if (sessionRunLog !== undefined) {
|
|
1426
1431
|
await flushHostedExecutionProcessDeath({
|
|
1427
|
-
flushProcessDeath: (reason)
|
|
1428
|
-
sessionRunLog.flushProcessDeath(reason),
|
|
1432
|
+
flushProcessDeath: reason => sessionRunLog.flushProcessDeath(reason),
|
|
1429
1433
|
flushStartLog,
|
|
1430
1434
|
startLogId: lastStartLogId,
|
|
1431
1435
|
reason: "process_exit",
|
|
@@ -1460,7 +1464,7 @@ export async function startServer(
|
|
|
1460
1464
|
server.close();
|
|
1461
1465
|
server.closeAllConnections();
|
|
1462
1466
|
try {
|
|
1463
|
-
await Promise.all(runtimes.map(
|
|
1467
|
+
await Promise.all(runtimes.map(runtime => runtime.engine.close()));
|
|
1464
1468
|
} finally {
|
|
1465
1469
|
cursorGithubCredentials?.stop();
|
|
1466
1470
|
await shutdownOtelRuntime(otelRuntime);
|
|
@@ -1532,7 +1536,7 @@ function mountAgentRoutes(
|
|
|
1532
1536
|
// loopback-only + per-boot bearer secret, never on the public auth chain.
|
|
1533
1537
|
if (args.accountBridge !== undefined && args.accountRefs !== undefined) {
|
|
1534
1538
|
const bridge = args.accountBridge;
|
|
1535
|
-
const refByName = new Map(args.accountRefs.map(
|
|
1539
|
+
const refByName = new Map(args.accountRefs.map(ref => [ref.name, ref]));
|
|
1536
1540
|
router.add({
|
|
1537
1541
|
method: "POST",
|
|
1538
1542
|
pattern: `${base}${cursorAccountMcpPath(":connection")}`,
|
|
@@ -1546,7 +1550,7 @@ function mountAgentRoutes(
|
|
|
1546
1550
|
`No Cursor account MCP connection named "${ctx.params.connection ?? ""}" on this agent.`
|
|
1547
1551
|
);
|
|
1548
1552
|
}
|
|
1549
|
-
return bridge.handle(request, ref);
|
|
1553
|
+
return bridge.handle(request, ref, appendSlackQuietHint);
|
|
1550
1554
|
},
|
|
1551
1555
|
});
|
|
1552
1556
|
}
|
|
@@ -1559,7 +1563,7 @@ function mountAgentRoutes(
|
|
|
1559
1563
|
const httpAuth = project.httpChannel.auth ?? defaultAuth;
|
|
1560
1564
|
// Temporal posts this marker on a direct pod port-token fetch. The alias
|
|
1561
1565
|
// proxy strips it, so webhook/playground tokens cannot present it.
|
|
1562
|
-
const platformTimerFireAuth: AuthPolicy =
|
|
1566
|
+
const platformTimerFireAuth: AuthPolicy = request => {
|
|
1563
1567
|
if (request.headers.get("x-agent-serve-timed-work") === "1") {
|
|
1564
1568
|
return {
|
|
1565
1569
|
authenticator: "app",
|
|
@@ -1569,7 +1573,15 @@ function mountAgentRoutes(
|
|
|
1569
1573
|
}
|
|
1570
1574
|
return null;
|
|
1571
1575
|
};
|
|
1572
|
-
|
|
1576
|
+
// A v2 mount served under `--no-control-plane` is a hosted v2 guest: the
|
|
1577
|
+
// hosted control plane drives it through the hosted delivery route below.
|
|
1578
|
+
// Session HTTP is a control-plane surface, so such a guest mounts no
|
|
1579
|
+
// `/v1/session*` or `/v1/sessions` routes — session starts arrive as hosted
|
|
1580
|
+
// admissions (`agentsdk.session` on the built-in http channel) and session
|
|
1581
|
+
// reads come from the control plane's runs surface and durable storage.
|
|
1582
|
+
// Local dev, self-hosted serve, and hosted v1 keep the engine mounts.
|
|
1583
|
+
const hostedV2Guest = noControlPlane === true && isV2Project(project);
|
|
1584
|
+
if (hostedV2Guest) {
|
|
1573
1585
|
registerHostedDeliveryRoute({
|
|
1574
1586
|
router,
|
|
1575
1587
|
base,
|
|
@@ -1587,7 +1599,7 @@ function mountAgentRoutes(
|
|
|
1587
1599
|
}),
|
|
1588
1600
|
fireReminder: (reminderId, fireCount) =>
|
|
1589
1601
|
reminderRunner.dispatch(reminderId, { expectedFireCount: fireCount }),
|
|
1590
|
-
executeReminderDescriptor: async
|
|
1602
|
+
executeReminderDescriptor: async descriptor => {
|
|
1591
1603
|
if (reminderControlPlane === undefined) {
|
|
1592
1604
|
throw new Error("hosted reminder CP client is not configured");
|
|
1593
1605
|
}
|
|
@@ -1614,7 +1626,7 @@ function mountAgentRoutes(
|
|
|
1614
1626
|
outcome: "fired" as const,
|
|
1615
1627
|
};
|
|
1616
1628
|
},
|
|
1617
|
-
drainSessionDurability:
|
|
1629
|
+
drainSessionDurability: sessionId =>
|
|
1618
1630
|
engine.drainSessionDurability(sessionId),
|
|
1619
1631
|
flushOtel: args.flushOtel,
|
|
1620
1632
|
...(args.diagStateRoot === undefined
|
|
@@ -1623,7 +1635,7 @@ function mountAgentRoutes(
|
|
|
1623
1635
|
...(sessionRunLog === undefined
|
|
1624
1636
|
? {}
|
|
1625
1637
|
: {
|
|
1626
|
-
persistSessionRun: async
|
|
1638
|
+
persistSessionRun: async document => {
|
|
1627
1639
|
await sessionRunLog.persist(document);
|
|
1628
1640
|
},
|
|
1629
1641
|
flushStartLog,
|
|
@@ -1651,7 +1663,7 @@ function mountAgentRoutes(
|
|
|
1651
1663
|
method: "GET",
|
|
1652
1664
|
pattern: `${base}${mcpOauthServeCallbackPath()}`,
|
|
1653
1665
|
auth: "none",
|
|
1654
|
-
handler:
|
|
1666
|
+
handler: request => engine.oauthCallbackHub.handleCallback(request),
|
|
1655
1667
|
});
|
|
1656
1668
|
|
|
1657
1669
|
router.add({
|
|
@@ -1729,7 +1741,7 @@ function mountAgentRoutes(
|
|
|
1729
1741
|
method: "GET",
|
|
1730
1742
|
pattern: `${base}/v1/logs`,
|
|
1731
1743
|
auth: httpAuth,
|
|
1732
|
-
handler:
|
|
1744
|
+
handler: request => {
|
|
1733
1745
|
const url = new URL(request.url);
|
|
1734
1746
|
const afterRaw = url.searchParams.get("after");
|
|
1735
1747
|
const after =
|
|
@@ -1748,34 +1760,38 @@ function mountAgentRoutes(
|
|
|
1748
1760
|
},
|
|
1749
1761
|
});
|
|
1750
1762
|
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
-
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1766
|
-
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1770
|
-
|
|
1771
|
-
|
|
1772
|
-
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1763
|
+
// Session list is session surface: not mounted on a hosted v2 guest (the
|
|
1764
|
+
// control plane owns session reads there; see hostedV2Guest above).
|
|
1765
|
+
if (!hostedV2Guest) {
|
|
1766
|
+
router.add({
|
|
1767
|
+
method: "GET",
|
|
1768
|
+
pattern: `${base}/v1/sessions`,
|
|
1769
|
+
auth: httpAuth,
|
|
1770
|
+
handler: async (request, ctx) => {
|
|
1771
|
+
// Same gate as requireSessionOwner / relaxSessionReadAuth: never with
|
|
1772
|
+
// bearer or custom channel auth (strict per-principal isolation).
|
|
1773
|
+
// `--allow-anonymous` alone is a shared-principal trust boundary (corp
|
|
1774
|
+
// Okta ALB); `--dev` alone stays loopback-only.
|
|
1775
|
+
const includeAll =
|
|
1776
|
+
relaxSessionReadAuth &&
|
|
1777
|
+
(relaxSessionReadAuthBeyondLoopback ||
|
|
1778
|
+
(typeof ctx.requestIp === "string" &&
|
|
1779
|
+
isLoopbackAddress(ctx.requestIp)));
|
|
1780
|
+
// `?latest=1` — only the newest visible session. Clients binding a
|
|
1781
|
+
// default session (agsh) do not need the whole list, and on hosted
|
|
1782
|
+
// storage the whole list is a database scan.
|
|
1783
|
+
const latest = new URL(request.url).searchParams.get("latest");
|
|
1784
|
+
const listed =
|
|
1785
|
+
latest === "1" || latest === "true"
|
|
1786
|
+
? await engine.latestSessionWithSource(ctx.auth, { includeAll })
|
|
1787
|
+
: await engine.listSessionsWithSource(ctx.auth, { includeAll });
|
|
1788
|
+
return jsonResponse({
|
|
1789
|
+
sessions: listed.sessions,
|
|
1790
|
+
source: listed.source,
|
|
1791
|
+
});
|
|
1792
|
+
},
|
|
1793
|
+
});
|
|
1794
|
+
}
|
|
1779
1795
|
|
|
1780
1796
|
// Durable artifacts (ctx.artifacts / tag_artifact), newest-updated first.
|
|
1781
1797
|
router.add({
|
|
@@ -2085,6 +2101,45 @@ function mountAgentRoutes(
|
|
|
2085
2101
|
},
|
|
2086
2102
|
});
|
|
2087
2103
|
|
|
2104
|
+
// Deterministic skill reads: the body the harness would receive, plus
|
|
2105
|
+
// resolved sibling files. Read-only, so plain GETs with no session binding.
|
|
2106
|
+
router.add({
|
|
2107
|
+
method: "GET",
|
|
2108
|
+
pattern: `${base}/v1/skills`,
|
|
2109
|
+
auth: httpAuth,
|
|
2110
|
+
handler: async () =>
|
|
2111
|
+
jsonResponse({
|
|
2112
|
+
skills: project.agent.skills.map(skillListEntry),
|
|
2113
|
+
}),
|
|
2114
|
+
});
|
|
2115
|
+
|
|
2116
|
+
router.add({
|
|
2117
|
+
method: "GET",
|
|
2118
|
+
pattern: `${base}/v1/skills/:skillName`,
|
|
2119
|
+
auth: httpAuth,
|
|
2120
|
+
handler: async (_request, ctx) => {
|
|
2121
|
+
const skillName = ctx.params.skillName ?? "";
|
|
2122
|
+
try {
|
|
2123
|
+
return jsonResponse(
|
|
2124
|
+
await readSkillDetail(project.agent.skills, skillName)
|
|
2125
|
+
);
|
|
2126
|
+
} catch (error) {
|
|
2127
|
+
if (error instanceof UnknownSkillError) {
|
|
2128
|
+
return jsonResponse(
|
|
2129
|
+
{
|
|
2130
|
+
ok: false,
|
|
2131
|
+
error: "unknown_skill",
|
|
2132
|
+
message: error.message,
|
|
2133
|
+
availableSkills: error.availableSkillNames,
|
|
2134
|
+
},
|
|
2135
|
+
{ status: 404 }
|
|
2136
|
+
);
|
|
2137
|
+
}
|
|
2138
|
+
throw error;
|
|
2139
|
+
}
|
|
2140
|
+
},
|
|
2141
|
+
});
|
|
2142
|
+
|
|
2088
2143
|
if (playground) {
|
|
2089
2144
|
// Serve the built Vite SPA. `<base href>` is injected so the SPA's relative
|
|
2090
2145
|
// asset URLs resolve under this mount regardless of the trailing slash the
|
|
@@ -2108,18 +2163,25 @@ function mountAgentRoutes(
|
|
|
2108
2163
|
});
|
|
2109
2164
|
}
|
|
2110
2165
|
|
|
2111
|
-
|
|
2112
|
-
|
|
2113
|
-
|
|
2114
|
-
|
|
2115
|
-
|
|
2116
|
-
|
|
2117
|
-
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
|
|
2121
|
-
|
|
2122
|
-
|
|
2166
|
+
// The built-in HTTP session channel (`/v1/session*`, including the
|
|
2167
|
+
// session-scoped approvals/auths routes) is session surface: not mounted on
|
|
2168
|
+
// a hosted v2 guest (see hostedV2Guest above). The `http` channel itself
|
|
2169
|
+
// stays registered with the hosted delivery route, which is how the control
|
|
2170
|
+
// plane's session starts reach it.
|
|
2171
|
+
if (!hostedV2Guest) {
|
|
2172
|
+
for (const route of buildHttpChannelRoutes({
|
|
2173
|
+
engine,
|
|
2174
|
+
config: project.httpChannel,
|
|
2175
|
+
auth: httpAuth,
|
|
2176
|
+
basePath: base,
|
|
2177
|
+
// Dev playground lists every session (`includeAll`); allow opening them
|
|
2178
|
+
// (see relaxSessionReadAuth above).
|
|
2179
|
+
relaxSessionReadAuth,
|
|
2180
|
+
relaxSessionReadAuthBeyondLoopback,
|
|
2181
|
+
relaxSessionApprovalAuth,
|
|
2182
|
+
})) {
|
|
2183
|
+
router.add(route);
|
|
2184
|
+
}
|
|
2123
2185
|
}
|
|
2124
2186
|
|
|
2125
2187
|
// Playground eval list/run — available without `--dev` (corp / allow-anonymous).
|
|
@@ -2142,7 +2204,7 @@ function mountAgentRoutes(
|
|
|
2142
2204
|
method: "POST",
|
|
2143
2205
|
pattern: `${base}/v1/dev/evals/runs`,
|
|
2144
2206
|
auth: httpAuth,
|
|
2145
|
-
handler: async
|
|
2207
|
+
handler: async request => {
|
|
2146
2208
|
const body = await readJsonObject(request);
|
|
2147
2209
|
const filterIds = asStringArray(body?.filterIds);
|
|
2148
2210
|
const tags = asStringArray(body?.tags);
|
|
@@ -2340,9 +2402,9 @@ function mountAgentRoutes(
|
|
|
2340
2402
|
const reminderId = ctx.params.reminderId ?? "";
|
|
2341
2403
|
try {
|
|
2342
2404
|
const listed = await reminderRunner.list();
|
|
2343
|
-
const reminder = listed.find(
|
|
2405
|
+
const reminder = listed.find(r => r.id === reminderId);
|
|
2344
2406
|
if (reminder === undefined) {
|
|
2345
|
-
const ids = listed.map(
|
|
2407
|
+
const ids = listed.map(r => r.id);
|
|
2346
2408
|
throw new UnknownReminderError(reminderId, ids);
|
|
2347
2409
|
}
|
|
2348
2410
|
const ownership = await assertReminderReadable({
|
|
@@ -2476,17 +2538,17 @@ function collectCursorEventSubscriptions(input: {
|
|
|
2476
2538
|
const githubTargets = findGitHubChannelTargets(input.mounts);
|
|
2477
2539
|
const originTargets = findOriginChannelTargets(input.mounts);
|
|
2478
2540
|
const githubEvents = [
|
|
2479
|
-
...new Set(githubTargets.flatMap(
|
|
2541
|
+
...new Set(githubTargets.flatMap(target => target.events)),
|
|
2480
2542
|
];
|
|
2481
2543
|
const originEvents = [
|
|
2482
|
-
...new Set(originTargets.flatMap(
|
|
2544
|
+
...new Set(originTargets.flatMap(target => target.events)),
|
|
2483
2545
|
];
|
|
2484
2546
|
const githubRepos = [
|
|
2485
|
-
...new Set(input.githubRepos.map(
|
|
2486
|
-
].filter(
|
|
2547
|
+
...new Set(input.githubRepos.map(repo => repo.trim().toLowerCase())),
|
|
2548
|
+
].filter(repo => repo.length > 0);
|
|
2487
2549
|
const originRepos = [
|
|
2488
|
-
...new Set(input.originRepos.map(
|
|
2489
|
-
].filter(
|
|
2550
|
+
...new Set(input.originRepos.map(repo => repo.trim().toLowerCase())),
|
|
2551
|
+
].filter(repo => repo.length > 0);
|
|
2490
2552
|
|
|
2491
2553
|
const subscriptions: CursorScmSubscription[] = [];
|
|
2492
2554
|
if (githubEvents.length > 0 && githubRepos.length > 0) {
|
|
@@ -2586,8 +2648,8 @@ function startCursorEventRelay(input: {
|
|
|
2586
2648
|
} else if (input.lane === "control-plane") {
|
|
2587
2649
|
return undefined;
|
|
2588
2650
|
} else if (
|
|
2589
|
-
input.githubRepos.every(
|
|
2590
|
-
input.originRepos.every(
|
|
2651
|
+
input.githubRepos.every(repo => repo.trim() === "") &&
|
|
2652
|
+
input.originRepos.every(repo => repo.trim() === "")
|
|
2591
2653
|
) {
|
|
2592
2654
|
logger(
|
|
2593
2655
|
"[agent-sdk] cursor-events: no repos configured (pass --repo owner/name); relay disabled"
|
|
@@ -2608,9 +2670,9 @@ function startCursorEventRelay(input: {
|
|
|
2608
2670
|
subscriptions,
|
|
2609
2671
|
stateDir: join(baseStateRoot, input.stateDirName ?? "cursor-events"),
|
|
2610
2672
|
logger,
|
|
2611
|
-
dispatch: async
|
|
2673
|
+
dispatch: async event => {
|
|
2612
2674
|
if (event.provider === "origin") {
|
|
2613
|
-
const targets = input.collectOriginTargets().filter(
|
|
2675
|
+
const targets = input.collectOriginTargets().filter(target => {
|
|
2614
2676
|
const cursorAccount = target.options.cursorAccount;
|
|
2615
2677
|
if (
|
|
2616
2678
|
input.cursorAccountOnly &&
|
|
@@ -2622,7 +2684,7 @@ function startCursorEventRelay(input: {
|
|
|
2622
2684
|
return typeof cursorAccount !== "object"
|
|
2623
2685
|
? true
|
|
2624
2686
|
: cursorAccount.repos.some(
|
|
2625
|
-
|
|
2687
|
+
repo => repo.toLowerCase() === event.repo.toLowerCase()
|
|
2626
2688
|
);
|
|
2627
2689
|
});
|
|
2628
2690
|
const result = await handleAgentServeTrigger({
|
|
@@ -2637,7 +2699,7 @@ function startCursorEventRelay(input: {
|
|
|
2637
2699
|
return;
|
|
2638
2700
|
}
|
|
2639
2701
|
if (event.provider !== "github") return;
|
|
2640
|
-
const targets = input.collectGitHubTargets().filter(
|
|
2702
|
+
const targets = input.collectGitHubTargets().filter(target => {
|
|
2641
2703
|
const cursorAccount = target.options.cursorAccount;
|
|
2642
2704
|
if (
|
|
2643
2705
|
input.cursorAccountOnly &&
|
|
@@ -2649,7 +2711,7 @@ function startCursorEventRelay(input: {
|
|
|
2649
2711
|
return typeof cursorAccount !== "object"
|
|
2650
2712
|
? true
|
|
2651
2713
|
: cursorAccount.repos.some(
|
|
2652
|
-
|
|
2714
|
+
repo => repo.toLowerCase() === event.repo.toLowerCase()
|
|
2653
2715
|
);
|
|
2654
2716
|
});
|
|
2655
2717
|
const result = await handleAgentServeTrigger({
|
|
@@ -2681,9 +2743,9 @@ function logCursorScmDispatch(
|
|
|
2681
2743
|
result: Awaited<ReturnType<typeof handleAgentServeTrigger>>
|
|
2682
2744
|
): void {
|
|
2683
2745
|
const outcomes = result.targets
|
|
2684
|
-
.map(
|
|
2746
|
+
.map(target => formatCursorScmDispatchOutcome(target))
|
|
2685
2747
|
.join(", ");
|
|
2686
|
-
const rejected = result.targets.filter(
|
|
2748
|
+
const rejected = result.targets.filter(target => target.status >= 400);
|
|
2687
2749
|
if (rejected.length > 0) {
|
|
2688
2750
|
logger(
|
|
2689
2751
|
`[agent-sdk] cursor-events: dropped ${formatCursorScmEventLog(event)} before hook: ${rejected.map(formatCursorScmDispatchOutcome).join(", ")}`
|
|
@@ -2751,7 +2813,7 @@ function resolveCursorGithubEventConfig(input: {
|
|
|
2751
2813
|
}
|
|
2752
2814
|
const repos = [
|
|
2753
2815
|
...(input.configured?.repos ?? []),
|
|
2754
|
-
...input.targets.flatMap(
|
|
2816
|
+
...input.targets.flatMap(target => [
|
|
2755
2817
|
...(target.accountRuntime.scope?.repos ?? []),
|
|
2756
2818
|
]),
|
|
2757
2819
|
];
|
|
@@ -2813,12 +2875,12 @@ function resolveCursorOriginRepoScope(input: {
|
|
|
2813
2875
|
return undefined;
|
|
2814
2876
|
}
|
|
2815
2877
|
const wantsHostRepos = input.targets.some(
|
|
2816
|
-
|
|
2878
|
+
target => target.accountRuntime.options.cursorAccount === true
|
|
2817
2879
|
);
|
|
2818
2880
|
const repos = [
|
|
2819
2881
|
...(wantsHostRepos ? input.explicitRepos : []),
|
|
2820
2882
|
...input.targets.flatMap(
|
|
2821
|
-
|
|
2883
|
+
target => target.accountRuntime.scope?.repos ?? []
|
|
2822
2884
|
),
|
|
2823
2885
|
];
|
|
2824
2886
|
if (repos.length === 0) {
|
|
@@ -2830,7 +2892,7 @@ function resolveCursorOriginRepoScope(input: {
|
|
|
2830
2892
|
function buildAgentIndexEntries(runtimes: MountedRuntime[]): AgentIndexEntry[] {
|
|
2831
2893
|
return runtimes.map(({ slug, project }) => {
|
|
2832
2894
|
const hasSlack = project.channels.some(
|
|
2833
|
-
|
|
2895
|
+
channel => channel.definition.meta?.kind === "slack"
|
|
2834
2896
|
);
|
|
2835
2897
|
return {
|
|
2836
2898
|
slug,
|
|
@@ -2877,7 +2939,7 @@ function liveDeploymentSubscriptionUnion(
|
|
|
2877
2939
|
targets: readonly CursorDeploymentTarget[]
|
|
2878
2940
|
): ResolvedSubscription[] {
|
|
2879
2941
|
return mergeResolvedSubscriptions(
|
|
2880
|
-
targets.map(
|
|
2942
|
+
targets.map(target => resolveDeploymentSubscriptions(target.options))
|
|
2881
2943
|
);
|
|
2882
2944
|
}
|
|
2883
2945
|
|
|
@@ -2918,7 +2980,7 @@ function startCursorDeploymentRelay(input: {
|
|
|
2918
2980
|
logger(
|
|
2919
2981
|
`[agent-sdk] deployment-events: no deploy sources yet on ${targets
|
|
2920
2982
|
.map(
|
|
2921
|
-
|
|
2983
|
+
target =>
|
|
2922
2984
|
`${target.runtime.slug || target.runtime.project.name}/${target.channelId}`
|
|
2923
2985
|
)
|
|
2924
2986
|
.join(", ")}; the relay will register when a channel lists some`
|
|
@@ -2935,14 +2997,14 @@ function startCursorDeploymentRelay(input: {
|
|
|
2935
2997
|
stateDir: join(baseStateRoot, "deployment-events"),
|
|
2936
2998
|
subscriptions: () => liveDeploymentSubscriptionUnion(targets),
|
|
2937
2999
|
logger,
|
|
2938
|
-
dispatch: async
|
|
3000
|
+
dispatch: async event =>
|
|
2939
3001
|
fanOutDeploymentEvent({
|
|
2940
3002
|
event,
|
|
2941
3003
|
logger,
|
|
2942
|
-
targets: targets.map(
|
|
3004
|
+
targets: targets.map(target => ({
|
|
2943
3005
|
name: `${target.runtime.slug || target.runtime.project.name}/${target.channelId}`,
|
|
2944
3006
|
subscriptions: resolveDeploymentSubscriptions(target.options),
|
|
2945
|
-
deliver:
|
|
3007
|
+
deliver: delivered =>
|
|
2946
3008
|
dispatchDeploymentEvent({
|
|
2947
3009
|
options: target.options,
|
|
2948
3010
|
event: delivered,
|
|
@@ -2984,17 +3046,28 @@ function buildChannelHandlerArgs(input: {
|
|
|
2984
3046
|
auth: sendOptions.auth !== undefined ? sendOptions.auth : auth,
|
|
2985
3047
|
hostedSessionId: input.hostedSessionId,
|
|
2986
3048
|
}),
|
|
2987
|
-
getSession:
|
|
3049
|
+
getSession: sessionId =>
|
|
2988
3050
|
runtime.engine.getChannelSession(channelId, sessionId),
|
|
2989
3051
|
receive: (target, inputReceive) =>
|
|
2990
3052
|
runtime.engine.receive(target, inputReceive),
|
|
2991
3053
|
callTool: (toolName, toolInput, callOptions) =>
|
|
2992
3054
|
runtime.engine.callTool(toolName, toolInput, callOptions),
|
|
2993
|
-
waitUntil:
|
|
3055
|
+
waitUntil: promise => {
|
|
2994
3056
|
runtime.engine.trackBackground(promise);
|
|
2995
3057
|
},
|
|
2996
3058
|
sessionUrls: (req, sessionId) =>
|
|
2997
3059
|
sessionUrlsForRequest(req, base, sessionId),
|
|
3060
|
+
hasContinuationSession: continuationToken =>
|
|
3061
|
+
runtime.engine.hasContinuationSession(channelId, continuationToken),
|
|
3062
|
+
isContinuationBusy: continuationToken =>
|
|
3063
|
+
runtime.engine.isContinuationBusy(channelId, continuationToken),
|
|
3064
|
+
getContinuationLastBotMessageTs: continuationToken =>
|
|
3065
|
+
runtime.engine.getContinuationLastBotMessageTs(
|
|
3066
|
+
channelId,
|
|
3067
|
+
continuationToken
|
|
3068
|
+
),
|
|
3069
|
+
interruptContinuation: continuationToken =>
|
|
3070
|
+
runtime.engine.interruptContinuation(channelId, continuationToken),
|
|
2998
3071
|
};
|
|
2999
3072
|
}
|
|
3000
3073
|
|
|
@@ -3120,22 +3193,10 @@ async function resolveAuth(
|
|
|
3120
3193
|
|
|
3121
3194
|
async function toFetchRequest(req: IncomingMessage): Promise<Request> {
|
|
3122
3195
|
const method = req.method ?? "GET";
|
|
3123
|
-
const hostHeader = req.headers
|
|
3196
|
+
const hostHeader = incomingRequestHost(req.headers);
|
|
3124
3197
|
const url = new URL(req.url ?? "/", `http://${hostHeader}`);
|
|
3125
|
-
|
|
3126
|
-
const headers =
|
|
3127
|
-
for (const [key, value] of Object.entries(req.headers)) {
|
|
3128
|
-
if (value === undefined) {
|
|
3129
|
-
continue;
|
|
3130
|
-
}
|
|
3131
|
-
if (Array.isArray(value)) {
|
|
3132
|
-
for (const item of value) {
|
|
3133
|
-
headers.append(key, item);
|
|
3134
|
-
}
|
|
3135
|
-
} else {
|
|
3136
|
-
headers.set(key, value);
|
|
3137
|
-
}
|
|
3138
|
-
}
|
|
3198
|
+
// Drop HTTP/2 pseudo-headers (`:method`, …) — Fetch `Headers` rejects them.
|
|
3199
|
+
const headers = incomingHeadersToFetch(req.headers);
|
|
3139
3200
|
|
|
3140
3201
|
if (method === "GET" || method === "HEAD") {
|
|
3141
3202
|
return new Request(url, { method, headers });
|
|
@@ -3192,7 +3253,7 @@ async function writeFetchResponse(
|
|
|
3192
3253
|
|
|
3193
3254
|
const reader = response.body.getReader();
|
|
3194
3255
|
let clientGone = false;
|
|
3195
|
-
const closed = new Promise<void>(
|
|
3256
|
+
const closed = new Promise<void>(resolve => {
|
|
3196
3257
|
res.once("close", () => {
|
|
3197
3258
|
if (!res.writableFinished) {
|
|
3198
3259
|
clientGone = true;
|