@cursor/july 0.1.109 → 0.1.111
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 +81 -66
- 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.map +1 -1
- package/dist/channels/github/github-channel.js +17 -13
- 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 +558 -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 +34 -1
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.js +219 -106
- 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 +36 -0
- package/dist/channels/slack/placeholder.d.ts.map +1 -0
- package/dist/channels/slack/placeholder.js +240 -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 +55 -20
- 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.Drol6mi6.js +309 -0
- package/dist/docs/assets/{building-with-agents.md.D0KbSkJn.js → building-with-agents.md.CEGVXkmO.js} +2 -2
- package/dist/docs/assets/{building-with-agents.md.D0KbSkJn.lean.js → building-with-agents.md.CEGVXkmO.lean.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.DtXk1hy-.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.CVQERt56.js → VPLocalSearchBox.CdqoBZJX.js} +2 -2
- package/dist/docs/assets/chunks/arc.BVX3ycTn.js +1 -0
- package/dist/docs/assets/chunks/architectureDiagram-Q4EWVU46.CcChnMxX.js +36 -0
- package/dist/docs/assets/chunks/baseUniq.xwtXO-yt.js +1 -0
- package/dist/docs/assets/chunks/blockDiagram-DXYQGD6D.CijZ_taK.js +132 -0
- package/dist/docs/assets/chunks/c4Diagram-AHTNJAMY.0FBvwBvK.js +10 -0
- package/dist/docs/assets/chunks/channel.Bkv1N-gK.js +1 -0
- package/dist/docs/assets/chunks/chunk-4BX2VUAB.CELMmMDA.js +1 -0
- package/dist/docs/assets/chunks/chunk-4TB4RGXK.C4bhFtSm.js +206 -0
- package/dist/docs/assets/chunks/chunk-55IACEB6.ZnQ9gRRQ.js +1 -0
- package/dist/docs/assets/chunks/chunk-EDXVE4YY.DPlmglG-.js +1 -0
- package/dist/docs/assets/chunks/chunk-FMBD7UC4.BrUk8pff.js +15 -0
- package/dist/docs/assets/chunks/chunk-OYMX7WX6.CcmWIncu.js +231 -0
- package/dist/docs/assets/chunks/chunk-QZHKN3VN.D65-cs8I.js +1 -0
- package/dist/docs/assets/chunks/chunk-YZCP3GAM.qoXZpG9F.js +1 -0
- package/dist/docs/assets/chunks/classDiagram-6PBFFD2Q.CZDco1o8.js +1 -0
- package/dist/docs/assets/chunks/classDiagram-v2-HSJHXN6E.CZDco1o8.js +1 -0
- package/dist/docs/assets/chunks/clone.YSt_40_s.js +1 -0
- package/dist/docs/assets/chunks/cose-bilkent-S5V4N54A.8rYtqudO.js +1 -0
- package/dist/docs/assets/chunks/cytoscape.esm.BQk4lpUV.js +331 -0
- package/dist/docs/assets/chunks/dagre-KV5264BT.DrRP1fOh.js +4 -0
- package/dist/docs/assets/chunks/defaultLocale.C4B-KCzX.js +1 -0
- package/dist/docs/assets/chunks/diagram-5BDNPKRD.DHj_xA2_.js +10 -0
- package/dist/docs/assets/chunks/diagram-G4DWMVQ6.Bz_6nAKj.js +24 -0
- package/dist/docs/assets/chunks/diagram-MMDJMWI5.BWA0xSW9.js +43 -0
- package/dist/docs/assets/chunks/diagram-TYMM5635.CpTJLNJI.js +24 -0
- package/dist/docs/assets/chunks/erDiagram-SMLLAGMA.-7AWWSrP.js +85 -0
- package/dist/docs/assets/chunks/flowDiagram-DWJPFMVM.BTnQ742_.js +162 -0
- package/dist/docs/assets/chunks/framework.dypDpWZ3.js +19 -0
- package/dist/docs/assets/chunks/ganttDiagram-T4ZO3ILL.B5_HiiQ5.js +292 -0
- package/dist/docs/assets/chunks/gitGraphDiagram-UUTBAWPF.CZcNTFZd.js +106 -0
- package/dist/docs/assets/chunks/graph.V2GLaab4.js +1 -0
- package/dist/docs/assets/chunks/infoDiagram-42DDH7IO.7pZOkCCU.js +2 -0
- package/dist/docs/assets/chunks/init.Gi6I4Gst.js +1 -0
- package/dist/docs/assets/chunks/ishikawaDiagram-UXIWVN3A.DSMo3Qa3.js +70 -0
- package/dist/docs/assets/chunks/journeyDiagram-VCZTEJTY.BNEgWN1S.js +139 -0
- package/dist/docs/assets/chunks/kanban-definition-6JOO6SKY.B-4d4tC7.js +89 -0
- package/dist/docs/assets/chunks/katex.DkKDou_j.js +257 -0
- package/dist/docs/assets/chunks/layout.Dvbn9nSb.js +1 -0
- package/dist/docs/assets/chunks/linear.D2GM4p4b.js +1 -0
- package/dist/docs/assets/chunks/min.DVBtLK-B.js +1 -0
- package/dist/docs/assets/chunks/mindmap-definition-QFDTVHPH.CnJRI55x.js +96 -0
- package/dist/docs/assets/chunks/ordinal.DBvzRdQf.js +1 -0
- package/dist/docs/assets/chunks/pieDiagram-DEJITSTG.CtoaTFlA.js +30 -0
- package/dist/docs/assets/chunks/quadrantDiagram-34T5L4WZ.DtT24_vN.js +7 -0
- package/dist/docs/assets/chunks/requirementDiagram-MS252O5E.CjSO4o8f.js +84 -0
- package/dist/docs/assets/chunks/sankeyDiagram-XADWPNL6.-wWiIVWa.js +10 -0
- package/dist/docs/assets/chunks/sequenceDiagram-FGHM5R23.DSk8s4gX.js +157 -0
- package/dist/docs/assets/chunks/stateDiagram-FHFEXIEX.BFKAsdkN.js +1 -0
- package/dist/docs/assets/chunks/stateDiagram-v2-QKLJ7IA2.C4CLm481.js +1 -0
- package/dist/docs/assets/chunks/{theme.Dnsd3XOn.js → theme.C0MctGaz.js} +2 -2
- package/dist/docs/assets/chunks/timeline-definition-GMOUNBTQ.TUNJbAFe.js +120 -0
- package/dist/docs/assets/chunks/vennDiagram-DHZGUBPP.C-RGNnk4.js +34 -0
- package/dist/docs/assets/chunks/virtual_mermaid-config.DDnGl6nM.js +1 -0
- package/dist/docs/assets/chunks/wardley-RL74JXVD.g5efOWmT.js +162 -0
- package/dist/docs/assets/chunks/wardleyDiagram-NUSXRM2D.DH4zt73Y.js +20 -0
- package/dist/docs/assets/chunks/xychartDiagram-5P7HB3ND.B-3k6bF6.js +7 -0
- package/dist/docs/assets/{deployment.md.JenwuCCB.js → deployment.md.Dm4Qo3hp.js} +5 -5
- package/dist/docs/assets/{deployment.md.JenwuCCB.lean.js → deployment.md.Dm4Qo3hp.lean.js} +1 -1
- package/dist/docs/assets/{evals.md.C7JLjoEP.js → evals.md.BLDRt5LH.js} +4 -4
- package/dist/docs/assets/{evals.md.C7JLjoEP.lean.js → evals.md.BLDRt5LH.lean.js} +1 -1
- package/dist/docs/assets/guides_agent-to-agent.md.BI0xclmy.js +14 -0
- package/dist/docs/assets/guides_agent-to-agent.md.BI0xclmy.lean.js +1 -0
- package/dist/docs/assets/{guides_bitbucket.md.DZPzmUjU.js → guides_bitbucket.md.CTpCl__f.js} +1 -1
- package/dist/docs/assets/{guides_bitbucket.md.DZPzmUjU.lean.js → guides_bitbucket.md.CTpCl__f.lean.js} +1 -1
- package/dist/docs/assets/{guides_cloud-agents.md.BsloyHdY.js → guides_cloud-agents.md.lSE_l7lH.js} +2 -2
- package/dist/docs/assets/{guides_cloud-agents.md.BsloyHdY.lean.js → guides_cloud-agents.md.lSE_l7lH.lean.js} +1 -1
- package/dist/docs/assets/{guides_convert-automation.md.B4sjlodG.js → guides_convert-automation.md.Ck6Cr68A.js} +1 -1
- package/dist/docs/assets/{guides_convert-automation.md.B4sjlodG.lean.js → guides_convert-automation.md.Ck6Cr68A.lean.js} +1 -1
- package/dist/docs/assets/{guides_github.md.TZaTZlfz.js → guides_github.md.D6ER29dG.js} +1 -1
- package/dist/docs/assets/{guides_github.md.TZaTZlfz.lean.js → guides_github.md.D6ER29dG.lean.js} +1 -1
- package/dist/docs/assets/{guides_gitlab.md.BmqwQfdG.js → guides_gitlab.md.P-TjBnS5.js} +1 -1
- package/dist/docs/assets/{guides_gitlab.md.BmqwQfdG.lean.js → guides_gitlab.md.P-TjBnS5.lean.js} +1 -1
- package/dist/docs/assets/guides_grokbot-agents.md.WBZIOvkz.js +9 -0
- package/dist/docs/assets/{guides_grokbot-agents.md.DyV-WArv.lean.js → guides_grokbot-agents.md.WBZIOvkz.lean.js} +1 -1
- package/dist/docs/assets/{guides_improve.md.BGVk32bK.js → guides_improve.md.BKaDuKKK.js} +1 -1
- package/dist/docs/assets/{guides_improve.md.BGVk32bK.lean.js → guides_improve.md.BKaDuKKK.lean.js} +1 -1
- package/dist/docs/assets/{guides_mcp-oauth.md.Dp6cDP7f.js → guides_mcp-oauth.md.DMNMpXtO.js} +1 -1
- package/dist/docs/assets/{guides_mcp-oauth.md.Dp6cDP7f.lean.js → guides_mcp-oauth.md.DMNMpXtO.lean.js} +1 -1
- package/dist/docs/assets/{guides_opentelemetry.md.SCRMskno.js → guides_opentelemetry.md._CRfDyzH.js} +14 -14
- package/dist/docs/assets/{guides_opentelemetry.md.SCRMskno.lean.js → guides_opentelemetry.md._CRfDyzH.lean.js} +1 -1
- package/dist/docs/assets/{guides_slack.md.D4RVMM4G.js → guides_slack.md.DdT8rmsj.js} +12 -4
- package/dist/docs/assets/{guides_slack.md.D4RVMM4G.lean.js → guides_slack.md.DdT8rmsj.lean.js} +1 -1
- package/dist/docs/assets/{guides_webhooks.md.CJK484ex.js → guides_webhooks.md.aQW10HRe.js} +2 -2
- package/dist/docs/assets/{guides_webhooks.md.CJK484ex.lean.js → guides_webhooks.md.aQW10HRe.lean.js} +1 -1
- package/dist/docs/assets/hillclimbing.md.Dq4kkVIL.js +1 -0
- package/dist/docs/assets/hillclimbing.md.Dq4kkVIL.lean.js +1 -0
- package/dist/docs/assets/index.md.BFVyY2KT.js +17 -0
- package/dist/docs/assets/index.md.BFVyY2KT.lean.js +1 -0
- package/dist/docs/assets/{quickstart.md.DdQOF7Y8.js → quickstart.md.D3MjSZN-.js} +30 -38
- package/dist/docs/assets/quickstart.md.D3MjSZN-.lean.js +1 -0
- package/dist/docs/assets/{reference_agent-config.md.CvoL6pof.js → reference_agent-config.md.CfVA-LZJ.js} +1 -1
- package/dist/docs/assets/{reference_agent-config.md.CvoL6pof.lean.js → reference_agent-config.md.CfVA-LZJ.lean.js} +1 -1
- package/dist/docs/assets/{reference_artifacts.md.Dior32Qw.js → reference_artifacts.md.Vf7qyIZ-.js} +1 -1
- package/dist/docs/assets/{reference_artifacts.md.Dior32Qw.lean.js → reference_artifacts.md.Vf7qyIZ-.lean.js} +1 -1
- package/dist/docs/assets/{reference_channels.md.CAo-iK4j.js → reference_channels.md.icqLKcTc.js} +2 -12
- package/dist/docs/assets/{reference_channels.md.CAo-iK4j.lean.js → reference_channels.md.icqLKcTc.lean.js} +1 -1
- package/dist/docs/assets/{reference_cli.md.Deg7849l.js → reference_cli.md.B2dBL6L8.js} +3 -3
- package/dist/docs/assets/{reference_cli.md.Deg7849l.lean.js → reference_cli.md.B2dBL6L8.lean.js} +1 -1
- package/dist/docs/assets/{reference_connections.md.BojkC6c5.js → reference_connections.md.Cb3U_c8n.js} +4 -4
- package/dist/docs/assets/{reference_connections.md.BojkC6c5.lean.js → reference_connections.md.Cb3U_c8n.lean.js} +1 -1
- package/dist/docs/assets/{reference_extensions.md.ZAVUyuEX.js → reference_extensions.md.wlFD3cUR.js} +2 -2
- package/dist/docs/assets/{reference_extensions.md.ZAVUyuEX.lean.js → reference_extensions.md.wlFD3cUR.lean.js} +1 -1
- package/dist/docs/assets/{reference_hooks.md.BlM_bOg6.js → reference_hooks.md.CZuynAxj.js} +3 -3
- package/dist/docs/assets/{reference_hooks.md.BlM_bOg6.lean.js → reference_hooks.md.CZuynAxj.lean.js} +1 -1
- package/dist/docs/assets/{reference_http-api.md.BwaCo-VO.js → reference_http-api.md.DTKcYE6L.js} +3 -3
- package/dist/docs/assets/{reference_http-api.md.BwaCo-VO.lean.js → reference_http-api.md.DTKcYE6L.lean.js} +1 -1
- package/dist/docs/assets/{reference_instructions.md.CR7XSsGk.js → reference_instructions.md.D7gkckK-.js} +1 -1
- package/dist/docs/assets/{reference_instructions.md.CR7XSsGk.lean.js → reference_instructions.md.D7gkckK-.lean.js} +1 -1
- package/dist/docs/assets/{reference_playground.md.DLnoaczX.js → reference_playground.md.D2YExv5K.js} +1 -1
- package/dist/docs/assets/{reference_playground.md.DLnoaczX.lean.js → reference_playground.md.D2YExv5K.lean.js} +1 -1
- package/dist/docs/assets/{reference_project-layout.md.BEU8MtQV.js → reference_project-layout.md.DPxbUJyt.js} +3 -3
- package/dist/docs/assets/{reference_project-layout.md.BEU8MtQV.lean.js → reference_project-layout.md.DPxbUJyt.lean.js} +1 -1
- package/dist/docs/assets/{reference_prompt.md.DnaD5dNK.js → reference_prompt.md.BQ5uAv1F.js} +1 -1
- package/dist/docs/assets/{reference_prompt.md.DnaD5dNK.lean.js → reference_prompt.md.BQ5uAv1F.lean.js} +1 -1
- package/dist/docs/assets/{reference_schedules.md.DI_JrHgq.js → reference_schedules.md.BasfZWO-.js} +1 -1
- package/dist/docs/assets/{reference_schedules.md.DI_JrHgq.lean.js → reference_schedules.md.BasfZWO-.lean.js} +1 -1
- package/dist/docs/assets/{reference_sessions.md.CyXV1MUw.js → reference_sessions.md.YKvIsWAx.js} +1 -1
- package/dist/docs/assets/{reference_sessions.md.CyXV1MUw.lean.js → reference_sessions.md.YKvIsWAx.lean.js} +1 -1
- package/dist/docs/assets/{reference_skills.md.l2ezAcaN.js → reference_skills.md.rNgpsGd0.js} +1 -1
- package/dist/docs/assets/{reference_skills.md.l2ezAcaN.lean.js → reference_skills.md.rNgpsGd0.lean.js} +1 -1
- package/dist/docs/assets/{reference_subagents.md.CfsIloPm.js → reference_subagents.md.e5qitjJt.js} +2 -2
- package/dist/docs/assets/{reference_subagents.md.CfsIloPm.lean.js → reference_subagents.md.e5qitjJt.lean.js} +1 -1
- package/dist/docs/assets/{reference_tools.md.aGrn99hP.js → reference_tools.md.BdCO2aHZ.js} +4 -4
- package/dist/docs/assets/{reference_tools.md.aGrn99hP.lean.js → reference_tools.md.BdCO2aHZ.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.Da_AGDlH.js} +1 -1
- package/dist/docs/assets/{templates_agentic-owners.md.BZSH4N9z.lean.js → templates_agentic-owners.md.Da_AGDlH.lean.js} +1 -1
- package/dist/docs/assets/{templates_pr-autofixer.md.Bds_XWcV.js → templates_pr-autofixer.md.DqxocIGh.js} +1 -1
- package/dist/docs/assets/{templates_pr-autofixer.md.Bds_XWcV.lean.js → templates_pr-autofixer.md.DqxocIGh.lean.js} +1 -1
- package/dist/docs/assets/{templates_security-reviewer.md.lshxbCLK.js → templates_security-reviewer.md.Bhnvd8VE.js} +1 -1
- package/dist/docs/assets/{templates_security-reviewer.md.lshxbCLK.lean.js → templates_security-reviewer.md.Bhnvd8VE.lean.js} +1 -1
- package/dist/docs/assets/{templates_triage.md.Co4UNzkZ.js → templates_triage.md.BdBWO9Ic.js} +1 -1
- package/dist/docs/assets/{templates_triage.md.Co4UNzkZ.lean.js → templates_triage.md.BdBWO9Ic.lean.js} +1 -1
- package/dist/docs/assets/{troubleshooting.md.CYEAO9bM.js → troubleshooting.md.BcgNoYtJ.js} +1 -1
- package/dist/docs/assets/{troubleshooting.md.CYEAO9bM.lean.js → troubleshooting.md.BcgNoYtJ.lean.js} +1 -1
- package/dist/docs/building-with-agents.html +41 -8
- package/dist/docs/building-with-agents.md +13 -15
- package/dist/docs/deployment.html +44 -11
- package/dist/docs/deployment.md +6 -7
- package/dist/docs/evals.html +44 -11
- package/dist/docs/evals.md +5 -5
- package/dist/docs/guides/agent-to-agent.html +48 -11
- package/dist/docs/guides/agent-to-agent.md +40 -83
- package/dist/docs/guides/bitbucket.html +41 -8
- package/dist/docs/guides/cloud-agents.html +41 -8
- package/dist/docs/guides/cloud-agents.md +24 -20
- package/dist/docs/guides/convert-automation.html +41 -8
- package/dist/docs/guides/github.html +41 -8
- package/dist/docs/guides/github.md +1 -1
- package/dist/docs/guides/gitlab.html +41 -8
- package/dist/docs/guides/grokbot-agents.html +41 -8
- package/dist/docs/guides/grokbot-agents.md +26 -19
- package/dist/docs/guides/improve.html +41 -8
- package/dist/docs/guides/mcp-oauth.html +41 -8
- package/dist/docs/guides/mcp-oauth.md +1 -1
- package/dist/docs/guides/opentelemetry.html +53 -20
- package/dist/docs/guides/opentelemetry.md +28 -41
- package/dist/docs/guides/slack.html +51 -10
- package/dist/docs/guides/slack.md +53 -4
- package/dist/docs/guides/webhooks.html +42 -9
- package/dist/docs/guides/webhooks.md +3 -4
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +40 -10
- package/dist/docs/hillclimbing.md +5 -5
- package/dist/docs/index.html +57 -12
- package/dist/docs/index.md +81 -150
- package/dist/docs/llms-full.txt +5779 -10297
- package/dist/docs/llms.txt +3 -29
- 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 +42 -9
- package/dist/docs/reference/cli.md +0 -16
- package/dist/docs/reference/connections.html +43 -10
- package/dist/docs/reference/connections.md +3 -5
- package/dist/docs/reference/extensions.html +42 -9
- package/dist/docs/reference/extensions.md +2 -2
- package/dist/docs/reference/hooks.html +42 -9
- package/dist/docs/reference/hooks.md +2 -4
- 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/triage.html +41 -8
- package/dist/docs/troubleshooting.html +40 -7
- package/dist/docs/troubleshooting.md +1 -2
- 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/tools/list.js +1 -1
- package/dist/extensions/improve/skills/yourself.js +1 -1
- 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.map +1 -1
- package/dist/filesystem.js +15 -15
- package/dist/index.d.ts +5 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -6
- 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 +1 -0
- package/dist/internal/cli-ax.d.ts.map +1 -1
- package/dist/internal/cli-ax.js +68 -13
- 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 +14 -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-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 +6 -6
- package/dist/internal/filesystem/walk.js +1 -1
- 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 +2 -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 +29 -0
- package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
- package/dist/internal/hosted-delivery-protocol.js +76 -8
- package/dist/internal/hosted-delivery.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.js +201 -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 +14 -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 +81 -87
- 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 +380 -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/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-BLlKgZtI.css +1 -0
- package/dist/playground/assets/index-CDS5p9sR.js +67 -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 +67 -11
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +12 -4
- package/docs/README.md +83 -152
- package/docs/building-with-agents.md +13 -15
- package/docs/deployment.md +6 -7
- package/docs/evals.md +5 -5
- package/docs/guides/agent-to-agent.md +41 -84
- package/docs/guides/cloud-agents.md +25 -20
- package/docs/guides/github.md +1 -1
- package/docs/guides/grokbot-agents.md +27 -19
- package/docs/guides/mcp-oauth.md +1 -1
- package/docs/guides/opentelemetry.md +28 -41
- package/docs/guides/slack.md +53 -4
- package/docs/guides/webhooks.md +3 -4
- package/docs/hillclimbing.md +5 -5
- package/docs/quickstart.md +45 -106
- package/docs/reference/channels.md +0 -16
- package/docs/reference/cli.md +0 -16
- package/docs/reference/connections.md +3 -5
- package/docs/reference/extensions.md +2 -2
- package/docs/reference/hooks.md +2 -4
- 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/troubleshooting.md +1 -2
- package/package.json +55 -37
- package/skills/framework-map/SKILL.md +2 -2
- package/skills/otel/SKILL.md +8 -18
- package/src/bin/agent-serve.ts +93 -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 +19 -2
- 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 +659 -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 +299 -170
- 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 +315 -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 +73 -13
- 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/tools/list.ts +1 -1
- package/src/extensions/improve/skills/yourself.ts +1 -1
- 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 +16 -18
- package/src/index.ts +4 -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 +84 -14
- 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 +13 -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-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 +6 -8
- package/src/internal/filesystem/walk.ts +1 -1
- 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 +2 -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 +111 -13
- package/src/internal/hosted-delivery.ts +286 -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 +14 -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 +97 -99
- package/src/internal/session-cost.ts +3 -3
- package/src/internal/session-engine.ts +504 -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/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 +82 -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/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/chunks/@localSearchIndexroot.CFVQ4S17.js +0 -1
- package/dist/docs/assets/chunks/framework.BCISBCiQ.js +0 -19
- 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/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_grokbot-agents.md.DyV-WArv.js +0 -9
- 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/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_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/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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `agent-sdk deploy | deployments | deployment | stop | delete | rotate-token |
|
|
3
|
-
*
|
|
3
|
+
* secrets set|list|unset` — Heroku-style deploys
|
|
4
4
|
* onto Cursor's managed agent-serve hosting.
|
|
5
5
|
*
|
|
6
6
|
* All intelligence is server-side (backend/server/src/agentServe/); these
|
|
@@ -26,8 +26,10 @@ import {
|
|
|
26
26
|
import { authorizeCursorAccountConnectors } from "./cursor-account-mcp-auth.js";
|
|
27
27
|
import { readDeployTemplate } from "./cursor-agent-template.js";
|
|
28
28
|
import {
|
|
29
|
+
type AgentkitCancelRunsResult,
|
|
29
30
|
type AgentkitDeployAccepted,
|
|
30
31
|
type AgentkitDeployComponent,
|
|
32
|
+
type AgentkitDeploymentListItem,
|
|
31
33
|
type AgentkitDeployStatus,
|
|
32
34
|
type AgentkitStopAccepted,
|
|
33
35
|
AgentServeDeployClient,
|
|
@@ -98,6 +100,10 @@ export interface DeployCliOptions {
|
|
|
98
100
|
team?: string;
|
|
99
101
|
json?: boolean;
|
|
100
102
|
noWait?: boolean;
|
|
103
|
+
/** v2 stop: also request cancellation for every active session run. */
|
|
104
|
+
cancelRuns?: boolean;
|
|
105
|
+
/** Globally suspend a multi-tenant application without canceling runs. */
|
|
106
|
+
global?: boolean;
|
|
101
107
|
apiKey?: string;
|
|
102
108
|
/**
|
|
103
109
|
* deploy `--repo <url>`: https git repo the control plane builds from.
|
|
@@ -332,23 +338,28 @@ export async function cmdDeploy(options: DeployCliOptions): Promise<number> {
|
|
|
332
338
|
for (const target of targets) {
|
|
333
339
|
manifests.push(await readDeployManifest(target.dir));
|
|
334
340
|
}
|
|
335
|
-
if (manifests.every(
|
|
341
|
+
if (manifests.every(manifest => manifest.architecture === "v2")) {
|
|
336
342
|
return deployAgentsdkApplication(ctx, options, targets, {
|
|
337
|
-
|
|
343
|
+
// `persistent` is per child agent, like `agentPath`: each release
|
|
344
|
+
// component carries its own.
|
|
345
|
+
componentPersistent: Object.fromEntries(
|
|
346
|
+
targets.map((target, index) => [
|
|
347
|
+
target.slug,
|
|
348
|
+
manifests[index]?.persistent === true,
|
|
349
|
+
])
|
|
350
|
+
),
|
|
351
|
+
hasScmChannels: manifests.some(manifest => manifest.hasScmChannels),
|
|
338
352
|
declaredSecretNames: [
|
|
339
353
|
...new Set(
|
|
340
|
-
manifests.flatMap(
|
|
354
|
+
manifests.flatMap(manifest => manifest.hosting?.secretNames ?? [])
|
|
341
355
|
),
|
|
342
356
|
],
|
|
343
357
|
hasDeploymentsChannels: manifests.some(
|
|
344
|
-
|
|
358
|
+
manifest => manifest.hasDeploymentsChannels
|
|
345
359
|
),
|
|
346
360
|
});
|
|
347
361
|
}
|
|
348
|
-
if (
|
|
349
|
-
!ctx.json &&
|
|
350
|
-
manifests.some((manifest) => manifest.architecture === "v2")
|
|
351
|
-
) {
|
|
362
|
+
if (!ctx.json && manifests.some(manifest => manifest.architecture === "v2")) {
|
|
352
363
|
ctx.err(
|
|
353
364
|
`warning: agents under this parent mix architectures; deploying each separately (v2 children become standalone single-component applications).\n`
|
|
354
365
|
);
|
|
@@ -453,7 +464,7 @@ async function resolveDeployTargets(
|
|
|
453
464
|
}
|
|
454
465
|
// Deploy slugs are lowercase-only; normalize directory names the same way
|
|
455
466
|
// single-agent deploy does so MixedCase child dirs still deploy.
|
|
456
|
-
children = children.flatMap(
|
|
467
|
+
children = children.flatMap(child => {
|
|
457
468
|
const slug = slugFromDirectoryName(basename(child.dir));
|
|
458
469
|
if (slug === undefined) {
|
|
459
470
|
return [];
|
|
@@ -513,7 +524,7 @@ async function resolveDeployTargets(
|
|
|
513
524
|
if (options.all === true) {
|
|
514
525
|
if (!ctx.json) {
|
|
515
526
|
ctx.err(
|
|
516
|
-
`Deploying all ${children.length} agents under ${basename(dir)}: ${children.map(
|
|
527
|
+
`Deploying all ${children.length} agents under ${basename(dir)}: ${children.map(c => c.slug).join(", ")}.\n`
|
|
517
528
|
);
|
|
518
529
|
}
|
|
519
530
|
return [...children];
|
|
@@ -521,7 +532,7 @@ async function resolveDeployTargets(
|
|
|
521
532
|
|
|
522
533
|
if (options.slug !== undefined) {
|
|
523
534
|
const wanted = options.slug.toLowerCase();
|
|
524
|
-
const match = children.find(
|
|
535
|
+
const match = children.find(child => child.slug === wanted);
|
|
525
536
|
if (match === undefined) {
|
|
526
537
|
ctx.err(
|
|
527
538
|
`No agent "${options.slug}" under ${dir}.\n` +
|
|
@@ -548,7 +559,7 @@ async function resolveDeployTargets(
|
|
|
548
559
|
|
|
549
560
|
const chooser =
|
|
550
561
|
options.chooseTargets ??
|
|
551
|
-
(
|
|
562
|
+
(agents =>
|
|
552
563
|
promptChooseDeployTargets(agents, {
|
|
553
564
|
err: ctx.err,
|
|
554
565
|
stdin: options.stdin ?? process.stdin,
|
|
@@ -638,7 +649,7 @@ export async function promptChooseDeployTargets(
|
|
|
638
649
|
) {
|
|
639
650
|
return [agents[asIndex - 1]!];
|
|
640
651
|
}
|
|
641
|
-
const bySlug = agents.find(
|
|
652
|
+
const bySlug = agents.find(agent => agent.slug.toLowerCase() === answer);
|
|
642
653
|
if (bySlug !== undefined) {
|
|
643
654
|
return [bySlug];
|
|
644
655
|
}
|
|
@@ -729,7 +740,7 @@ async function deployOne(
|
|
|
729
740
|
]),
|
|
730
741
|
];
|
|
731
742
|
const publicRoutePaths = (manifest?.publicChannelIds ?? []).map(
|
|
732
|
-
|
|
743
|
+
channelId => `/v1/channels/${channelId}`
|
|
733
744
|
);
|
|
734
745
|
if (!ctx.json && manifest?.httpChannelPublicEndpoint === true) {
|
|
735
746
|
ctx.err(
|
|
@@ -748,7 +759,7 @@ async function deployOne(
|
|
|
748
759
|
if (!ctx.json && deadSecretChannels.length > 0) {
|
|
749
760
|
ctx.err(
|
|
750
761
|
`warning: ${deadSecretChannels
|
|
751
|
-
.map(
|
|
762
|
+
.map(channelId => `/v1/channels/${channelId}`)
|
|
752
763
|
.join(
|
|
753
764
|
", "
|
|
754
765
|
)}: publicEndpoint() sits beside sharedSecretAuth()/hmacSignatureAuth() — auth chains are any-of, so every request is admitted and those secret policies never run. Drop publicEndpoint() to enforce them, or drop them to make the intent explicit.\n`
|
|
@@ -757,9 +768,12 @@ async function deployOne(
|
|
|
757
768
|
|
|
758
769
|
if (manifest?.architecture === "v2") {
|
|
759
770
|
if (!ctx.json) {
|
|
760
|
-
ctx.err(
|
|
771
|
+
ctx.err(
|
|
772
|
+
` architecture: v2${manifest.persistent ? " (persistent)" : ""}\n`
|
|
773
|
+
);
|
|
761
774
|
}
|
|
762
775
|
return deployOneAgentsdk(ctx, extras, {
|
|
776
|
+
persistent: manifest.persistent,
|
|
763
777
|
slug,
|
|
764
778
|
gitRepoUrl,
|
|
765
779
|
gitRef,
|
|
@@ -875,7 +889,7 @@ async function deployOne(
|
|
|
875
889
|
// Paste-ready webhook URLs: these subtrees skip the alias token, so
|
|
876
890
|
// the channel handler must verify deliveries (webhook signatures).
|
|
877
891
|
deployedPublicRoutes
|
|
878
|
-
.map(
|
|
892
|
+
.map(path => ` public: ${aliasUrl}${path} (no alias token)\n`)
|
|
879
893
|
.join("")
|
|
880
894
|
);
|
|
881
895
|
|
|
@@ -899,6 +913,8 @@ async function deployAgentsdkApplication(
|
|
|
899
913
|
options: DeployCliOptions,
|
|
900
914
|
targets: readonly DeployTarget[],
|
|
901
915
|
declarations: {
|
|
916
|
+
/** Per child slug: `persistent: true` on that agent's manifest. */
|
|
917
|
+
componentPersistent: Record<string, boolean>;
|
|
902
918
|
hasScmChannels: boolean;
|
|
903
919
|
declaredSecretNames: string[];
|
|
904
920
|
hasDeploymentsChannels: boolean;
|
|
@@ -946,11 +962,12 @@ async function deployAgentsdkApplication(
|
|
|
946
962
|
}
|
|
947
963
|
}
|
|
948
964
|
|
|
949
|
-
const components: AgentkitDeployComponent[] = targets.map(
|
|
965
|
+
const components: AgentkitDeployComponent[] = targets.map(target => ({
|
|
950
966
|
componentKey: target.slug,
|
|
951
967
|
agentPath: [parentPath, basename(target.dir)]
|
|
952
968
|
.filter((part): part is string => part !== undefined && part !== "")
|
|
953
969
|
.join("/"),
|
|
970
|
+
persistent: declarations.componentPersistent[target.slug] === true,
|
|
954
971
|
}));
|
|
955
972
|
|
|
956
973
|
if (!ctx.json) {
|
|
@@ -960,14 +977,16 @@ async function deployAgentsdkApplication(
|
|
|
960
977
|
` source: ${gitRepoUrl}${gitRef === undefined ? "" : ` @ ${gitRef}`}\n` +
|
|
961
978
|
components
|
|
962
979
|
.map(
|
|
963
|
-
|
|
964
|
-
` component: ${component.componentKey} (${component.agentPath ?? "."})\n`
|
|
980
|
+
component =>
|
|
981
|
+
` component: ${component.componentKey} (${component.agentPath ?? "."})${component.persistent ? " persistent" : ""}\n`
|
|
965
982
|
)
|
|
966
983
|
.join("")
|
|
967
984
|
);
|
|
968
985
|
}
|
|
969
986
|
|
|
970
987
|
return deployOneAgentsdk(ctx, undefined, {
|
|
988
|
+
// Multi-component: the flag travels on each component instead.
|
|
989
|
+
persistent: false,
|
|
971
990
|
slug,
|
|
972
991
|
gitRepoUrl,
|
|
973
992
|
gitRef,
|
|
@@ -1004,6 +1023,11 @@ async function deployOneAgentsdk(
|
|
|
1004
1023
|
hasDeploymentsChannels?: boolean;
|
|
1005
1024
|
/** Redeploy an existing Cursor-managed product. */
|
|
1006
1025
|
multiTenant: boolean;
|
|
1026
|
+
/**
|
|
1027
|
+
* `persistent: true` in a single agent's manifest. Multi-component
|
|
1028
|
+
* deploys pass `false` here and flag each component instead.
|
|
1029
|
+
*/
|
|
1030
|
+
persistent: boolean;
|
|
1007
1031
|
}
|
|
1008
1032
|
): Promise<number> {
|
|
1009
1033
|
const { slug } = args;
|
|
@@ -1011,7 +1035,7 @@ async function deployOneAgentsdk(
|
|
|
1011
1035
|
args.components === undefined
|
|
1012
1036
|
? ""
|
|
1013
1037
|
: ` components: ${args.components
|
|
1014
|
-
.map(
|
|
1038
|
+
.map(component => component.componentKey)
|
|
1015
1039
|
.join(", ")}\n`;
|
|
1016
1040
|
if (args.multiTenant && !ctx.json) {
|
|
1017
1041
|
ctx.err(" multi-tenant: existing product\n");
|
|
@@ -1027,6 +1051,7 @@ async function deployOneAgentsdk(
|
|
|
1027
1051
|
components: args.components,
|
|
1028
1052
|
repositories: args.repositories,
|
|
1029
1053
|
...(args.multiTenant ? { multiTenant: true } : {}),
|
|
1054
|
+
persistent: args.persistent,
|
|
1030
1055
|
});
|
|
1031
1056
|
} catch (error) {
|
|
1032
1057
|
return renderApiError(error, ctx.err, {
|
|
@@ -1088,7 +1113,7 @@ async function deployOneAgentsdk(
|
|
|
1088
1113
|
(args.components === undefined
|
|
1089
1114
|
? ""
|
|
1090
1115
|
: ` components: ${args.components
|
|
1091
|
-
.map(
|
|
1116
|
+
.map(component => component.componentKey)
|
|
1092
1117
|
.join(", ")}\n`) +
|
|
1093
1118
|
(detail.repositories === undefined || !watchesRepositories
|
|
1094
1119
|
? ""
|
|
@@ -1196,6 +1221,7 @@ async function runPostDeployConnectorAuth(
|
|
|
1196
1221
|
interface DeployManifest {
|
|
1197
1222
|
hosting: AgentHostingOptions | undefined;
|
|
1198
1223
|
architecture: AgentArchitecture | undefined;
|
|
1224
|
+
persistent: boolean;
|
|
1199
1225
|
/** `cursorAccount` connections declared by the agent. */
|
|
1200
1226
|
cursorAccountConnections: Array<{
|
|
1201
1227
|
name: string;
|
|
@@ -1245,44 +1271,45 @@ async function readDeployManifest(dir: string): Promise<DeployManifest> {
|
|
|
1245
1271
|
if (hasErrorDiagnostics(project)) {
|
|
1246
1272
|
throw new Error(
|
|
1247
1273
|
`Refusing to deploy ${project.name} — it has errors:\n${formatDiagnostics(
|
|
1248
|
-
project.diagnostics.filter(
|
|
1274
|
+
project.diagnostics.filter(d => d.severity === "error")
|
|
1249
1275
|
)}`
|
|
1250
1276
|
);
|
|
1251
1277
|
}
|
|
1252
1278
|
return {
|
|
1253
1279
|
hosting: project.agent.hosting,
|
|
1254
1280
|
architecture: project.agent.architecture,
|
|
1255
|
-
|
|
1281
|
+
persistent: project.agent.persistent === true,
|
|
1282
|
+
cursorAccountConnections: project.agent.connections.flatMap(connection =>
|
|
1256
1283
|
isCursorAccountTransport(connection.transport)
|
|
1257
1284
|
? [{ name: connection.name, servers: connection.transport.servers }]
|
|
1258
1285
|
: []
|
|
1259
1286
|
),
|
|
1260
1287
|
publicChannelIds: project.channels
|
|
1261
|
-
.filter(
|
|
1288
|
+
.filter(channel =>
|
|
1262
1289
|
(channel.definition.auth ?? []).some(isPublicEndpointPolicy)
|
|
1263
1290
|
)
|
|
1264
|
-
.map(
|
|
1291
|
+
.map(channel => channel.id),
|
|
1265
1292
|
publicChannelIdsWithDeadSecretPolicies: project.channels
|
|
1266
|
-
.filter(
|
|
1293
|
+
.filter(channel => {
|
|
1267
1294
|
const auth = channel.definition.auth ?? [];
|
|
1268
1295
|
return (
|
|
1269
1296
|
auth.some(isPublicEndpointPolicy) &&
|
|
1270
|
-
auth.some(
|
|
1297
|
+
auth.some(policy => {
|
|
1271
1298
|
const kind = catchAuthDeclaration(policy)?.kind;
|
|
1272
1299
|
return kind !== undefined && kind !== "public";
|
|
1273
1300
|
})
|
|
1274
1301
|
);
|
|
1275
1302
|
})
|
|
1276
|
-
.map(
|
|
1303
|
+
.map(channel => channel.id),
|
|
1277
1304
|
httpChannelPublicEndpoint: (project.httpChannel.auth ?? []).some(
|
|
1278
1305
|
isPublicEndpointPolicy
|
|
1279
1306
|
),
|
|
1280
|
-
hasScmChannels: project.channels.some(
|
|
1307
|
+
hasScmChannels: project.channels.some(channel => {
|
|
1281
1308
|
const kind = channel.definition.meta?.kind;
|
|
1282
1309
|
return kind === "github" || kind === "origin";
|
|
1283
1310
|
}),
|
|
1284
1311
|
hasDeploymentsChannels: project.channels.some(
|
|
1285
|
-
|
|
1312
|
+
channel => channel.definition.meta?.kind === "deployments"
|
|
1286
1313
|
),
|
|
1287
1314
|
};
|
|
1288
1315
|
}
|
|
@@ -1304,7 +1331,7 @@ function warnMissingSecrets(
|
|
|
1304
1331
|
// Platform-managed names (CURSOR_*, hosted storage) are injected by the
|
|
1305
1332
|
// control plane and never appear in secrets list — do not warn on them.
|
|
1306
1333
|
const missing = declared.filter(
|
|
1307
|
-
|
|
1334
|
+
name => !setNames.has(name) && !isReservedSecretName(name)
|
|
1308
1335
|
);
|
|
1309
1336
|
if (missing.length === 0) {
|
|
1310
1337
|
return;
|
|
@@ -1332,11 +1359,31 @@ export async function cmdDeployments(
|
|
|
1332
1359
|
} catch (error) {
|
|
1333
1360
|
return renderApiError(error, ctx.err);
|
|
1334
1361
|
}
|
|
1362
|
+
let applications: AgentkitDeploymentListItem[] = [];
|
|
1363
|
+
try {
|
|
1364
|
+
applications = await ctx.client.listAgentkitDeployments({
|
|
1365
|
+
teamId: ctx.teamId,
|
|
1366
|
+
});
|
|
1367
|
+
} catch (error) {
|
|
1368
|
+
// Older control planes 404 this route; keep listing v1.
|
|
1369
|
+
if (!(error instanceof DeployApiError && error.status === 404)) {
|
|
1370
|
+
return renderApiError(error, ctx.err);
|
|
1371
|
+
}
|
|
1372
|
+
}
|
|
1335
1373
|
if (ctx.json) {
|
|
1336
|
-
|
|
1374
|
+
// Empty v2 list keeps `{ deployments }` for v1-only parsers.
|
|
1375
|
+
ctx.out(
|
|
1376
|
+
`${JSON.stringify(
|
|
1377
|
+
applications.length === 0
|
|
1378
|
+
? { deployments }
|
|
1379
|
+
: { deployments, applications },
|
|
1380
|
+
null,
|
|
1381
|
+
2
|
|
1382
|
+
)}\n`
|
|
1383
|
+
);
|
|
1337
1384
|
return 0;
|
|
1338
1385
|
}
|
|
1339
|
-
if (deployments.length === 0) {
|
|
1386
|
+
if (deployments.length === 0 && applications.length === 0) {
|
|
1340
1387
|
ctx.out(
|
|
1341
1388
|
`No deployments on team ${ctx.teamId}. Create one with \`${CLI} deploy\`.\n`
|
|
1342
1389
|
);
|
|
@@ -1344,14 +1391,28 @@ export async function cmdDeployments(
|
|
|
1344
1391
|
}
|
|
1345
1392
|
ctx.out(
|
|
1346
1393
|
`${renderTable(
|
|
1347
|
-
["SLUG", "STATUS", "GEN", "KIND", "UPDATED"],
|
|
1348
|
-
|
|
1349
|
-
d
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1394
|
+
["SLUG", "ARCH", "STATUS", "GEN", "KIND", "UPDATED"],
|
|
1395
|
+
[
|
|
1396
|
+
...deployments.map(d => [
|
|
1397
|
+
d.slug,
|
|
1398
|
+
"v1",
|
|
1399
|
+
d.status,
|
|
1400
|
+
String(d.generation),
|
|
1401
|
+
d.deploymentKind,
|
|
1402
|
+
d.desiredUpdatedAt ?? "",
|
|
1403
|
+
]),
|
|
1404
|
+
...applications.map(application => [
|
|
1405
|
+
application.slug,
|
|
1406
|
+
"v2",
|
|
1407
|
+
application.status,
|
|
1408
|
+
"-",
|
|
1409
|
+
"application",
|
|
1410
|
+
application.deployments
|
|
1411
|
+
.map(row => row.desiredUpdatedAt)
|
|
1412
|
+
.sort()
|
|
1413
|
+
.at(-1) ?? "",
|
|
1414
|
+
]),
|
|
1415
|
+
]
|
|
1355
1416
|
)}\n`
|
|
1356
1417
|
);
|
|
1357
1418
|
return 0;
|
|
@@ -1537,6 +1598,34 @@ export async function cmdStop(
|
|
|
1537
1598
|
if (typeof ctx === "number") {
|
|
1538
1599
|
return ctx;
|
|
1539
1600
|
}
|
|
1601
|
+
if (options.global === true) {
|
|
1602
|
+
try {
|
|
1603
|
+
const accepted = await ctx.client.setAgentkitGlobalSuspension({
|
|
1604
|
+
teamId: ctx.teamId,
|
|
1605
|
+
slug,
|
|
1606
|
+
suspended: true,
|
|
1607
|
+
cancelRuns: options.cancelRuns,
|
|
1608
|
+
});
|
|
1609
|
+
if (ctx.json) {
|
|
1610
|
+
ctx.out(`${JSON.stringify(accepted, null, 2)}\n`);
|
|
1611
|
+
return accepted.cancellation?.failed === 0 ||
|
|
1612
|
+
accepted.cancellation === undefined
|
|
1613
|
+
? 0
|
|
1614
|
+
: 1;
|
|
1615
|
+
}
|
|
1616
|
+
ctx.out(
|
|
1617
|
+
accepted.cancellation === undefined
|
|
1618
|
+
? `Globally stopped ${slug} (team ${ctx.teamId}); existing runs were not canceled.\n`
|
|
1619
|
+
: `Globally stopped ${slug} (team ${ctx.teamId}).\n`
|
|
1620
|
+
);
|
|
1621
|
+
if (accepted.cancellation !== undefined) {
|
|
1622
|
+
return writeCancellationStarted(ctx, accepted.cancellation, slug);
|
|
1623
|
+
}
|
|
1624
|
+
return 0;
|
|
1625
|
+
} catch (error) {
|
|
1626
|
+
return renderApiError(error, ctx.err);
|
|
1627
|
+
}
|
|
1628
|
+
}
|
|
1540
1629
|
// Stop takes only a slug, so there is no manifest to dispatch on (unlike
|
|
1541
1630
|
// deploy). The v2 agentsdk control plane goes first: v1 endpoints refuse
|
|
1542
1631
|
// `architecture: "v2"` slugs with a 409 rather than a 404, so v1-first
|
|
@@ -1545,11 +1634,21 @@ export async function cmdStop(
|
|
|
1545
1634
|
let architecture: "v1" | "v2" = "v2";
|
|
1546
1635
|
let accepted: StopAccepted | AgentkitStopAccepted;
|
|
1547
1636
|
try {
|
|
1548
|
-
accepted = await ctx.client.stopAgentkit({
|
|
1637
|
+
accepted = await ctx.client.stopAgentkit({
|
|
1638
|
+
teamId: ctx.teamId,
|
|
1639
|
+
slug,
|
|
1640
|
+
cancelRuns: options.cancelRuns,
|
|
1641
|
+
});
|
|
1549
1642
|
} catch (error) {
|
|
1550
1643
|
if (!(error instanceof DeployApiError) || error.status !== 404) {
|
|
1551
1644
|
return renderApiError(error, ctx.err);
|
|
1552
1645
|
}
|
|
1646
|
+
if (options.cancelRuns === true) {
|
|
1647
|
+
ctx.err(
|
|
1648
|
+
`Canceling active runs while stopping is supported only for Agent SDK v2 deployments.\n`
|
|
1649
|
+
);
|
|
1650
|
+
return 1;
|
|
1651
|
+
}
|
|
1553
1652
|
try {
|
|
1554
1653
|
accepted = await ctx.client.stopDeployment({ teamId: ctx.teamId, slug });
|
|
1555
1654
|
architecture = "v1";
|
|
@@ -1557,13 +1656,15 @@ export async function cmdStop(
|
|
|
1557
1656
|
return renderApiError(v1Error, ctx.err);
|
|
1558
1657
|
}
|
|
1559
1658
|
}
|
|
1659
|
+
const cancellation =
|
|
1660
|
+
"cancellation" in accepted ? accepted.cancellation : undefined;
|
|
1560
1661
|
if (ctx.noWait) {
|
|
1561
1662
|
if (ctx.json) {
|
|
1562
1663
|
ctx.out(`${JSON.stringify(accepted, null, 2)}\n`);
|
|
1563
1664
|
} else {
|
|
1564
1665
|
ctx.out(`Stop accepted for ${slug} (status: ${accepted.status}).\n`);
|
|
1565
1666
|
}
|
|
1566
|
-
return 0;
|
|
1667
|
+
return cancellation?.failed === 0 || cancellation === undefined ? 0 : 1;
|
|
1567
1668
|
}
|
|
1568
1669
|
let detail: DeploymentDetail | AgentkitDeployStatus;
|
|
1569
1670
|
try {
|
|
@@ -1583,6 +1684,189 @@ export async function cmdStop(
|
|
|
1583
1684
|
} else {
|
|
1584
1685
|
ctx.out(`Stopped ${slug} (team ${ctx.teamId}).\n`);
|
|
1585
1686
|
}
|
|
1687
|
+
if (cancellation !== undefined) {
|
|
1688
|
+
return writeCancellationStarted(ctx, cancellation, slug);
|
|
1689
|
+
}
|
|
1690
|
+
return 0;
|
|
1691
|
+
}
|
|
1692
|
+
|
|
1693
|
+
function writeCancellationStarted(
|
|
1694
|
+
ctx: { out: (text: string) => void; err: (text: string) => void },
|
|
1695
|
+
cancellation: AgentkitCancelRunsResult,
|
|
1696
|
+
slug: string
|
|
1697
|
+
): number {
|
|
1698
|
+
ctx.out(
|
|
1699
|
+
`Started cancellation across ${cancellation.batchesStarted} deployment batch(es).\n`
|
|
1700
|
+
);
|
|
1701
|
+
if (cancellation.sessionsMarkedFailed !== undefined) {
|
|
1702
|
+
ctx.out(
|
|
1703
|
+
`Marked ${cancellation.sessionsMarkedFailed} factory session(s) failed.\n`
|
|
1704
|
+
);
|
|
1705
|
+
}
|
|
1706
|
+
if (cancellation.failed > 0) {
|
|
1707
|
+
ctx.err(
|
|
1708
|
+
`Failed to start ${cancellation.failed} cancellation batch(es); retry with \`${CLI} cancel-runs ${slug}\`.\n`
|
|
1709
|
+
);
|
|
1710
|
+
return 1;
|
|
1711
|
+
}
|
|
1712
|
+
return 0;
|
|
1713
|
+
}
|
|
1714
|
+
|
|
1715
|
+
export async function cmdStart(
|
|
1716
|
+
slug: string | undefined,
|
|
1717
|
+
options: DeployCliOptions
|
|
1718
|
+
): Promise<number> {
|
|
1719
|
+
if (slug === undefined || slug === "" || options.global !== true) {
|
|
1720
|
+
(options.err ?? ((t: string) => void process.stderr.write(t)))(
|
|
1721
|
+
`Usage: ${CLI} start <slug> --global [--team <id>] [--json]\n`
|
|
1722
|
+
);
|
|
1723
|
+
return 1;
|
|
1724
|
+
}
|
|
1725
|
+
const ctx = await prepare(options);
|
|
1726
|
+
if (typeof ctx === "number") {
|
|
1727
|
+
return ctx;
|
|
1728
|
+
}
|
|
1729
|
+
try {
|
|
1730
|
+
const accepted = await ctx.client.setAgentkitGlobalSuspension({
|
|
1731
|
+
teamId: ctx.teamId,
|
|
1732
|
+
slug,
|
|
1733
|
+
suspended: false,
|
|
1734
|
+
});
|
|
1735
|
+
if (ctx.json) {
|
|
1736
|
+
ctx.out(`${JSON.stringify(accepted, null, 2)}\n`);
|
|
1737
|
+
} else {
|
|
1738
|
+
ctx.out(`Globally resumed ${slug} (team ${ctx.teamId}).\n`);
|
|
1739
|
+
}
|
|
1740
|
+
return 0;
|
|
1741
|
+
} catch (error) {
|
|
1742
|
+
return renderApiError(error, ctx.err);
|
|
1743
|
+
}
|
|
1744
|
+
}
|
|
1745
|
+
|
|
1746
|
+
export async function cmdCancelRuns(
|
|
1747
|
+
slug: string | undefined,
|
|
1748
|
+
options: DeployCliOptions
|
|
1749
|
+
): Promise<number> {
|
|
1750
|
+
if (slug === undefined || slug === "") {
|
|
1751
|
+
(options.err ?? ((text: string) => void process.stderr.write(text)))(
|
|
1752
|
+
`Usage: ${CLI} cancel-runs <slug> [--team <id>] [--json]\n`
|
|
1753
|
+
);
|
|
1754
|
+
return 1;
|
|
1755
|
+
}
|
|
1756
|
+
const ctx = await prepare(options);
|
|
1757
|
+
if (typeof ctx === "number") {
|
|
1758
|
+
return ctx;
|
|
1759
|
+
}
|
|
1760
|
+
let result: AgentkitCancelRunsResult;
|
|
1761
|
+
try {
|
|
1762
|
+
result = await ctx.client.cancelAgentkitRuns({
|
|
1763
|
+
teamId: ctx.teamId,
|
|
1764
|
+
slug,
|
|
1765
|
+
});
|
|
1766
|
+
} catch (error) {
|
|
1767
|
+
return renderApiError(error, ctx.err);
|
|
1768
|
+
}
|
|
1769
|
+
if (ctx.json) {
|
|
1770
|
+
ctx.out(`${JSON.stringify(result, null, 2)}\n`);
|
|
1771
|
+
} else {
|
|
1772
|
+
ctx.out(
|
|
1773
|
+
`Started cancellation across ${result.batchesStarted} deployment batch(es).\n`
|
|
1774
|
+
);
|
|
1775
|
+
if (result.sessionsMarkedFailed !== undefined) {
|
|
1776
|
+
ctx.out(
|
|
1777
|
+
`Marked ${result.sessionsMarkedFailed} factory session(s) failed.\n`
|
|
1778
|
+
);
|
|
1779
|
+
}
|
|
1780
|
+
}
|
|
1781
|
+
if (result.failed > 0) {
|
|
1782
|
+
ctx.err(`Failed to start ${result.failed} cancellation batch(es).\n`);
|
|
1783
|
+
return 1;
|
|
1784
|
+
}
|
|
1785
|
+
return 0;
|
|
1786
|
+
}
|
|
1787
|
+
|
|
1788
|
+
// ============================================================================
|
|
1789
|
+
// event-repos <slug> --repo <owner/name>...
|
|
1790
|
+
// ============================================================================
|
|
1791
|
+
|
|
1792
|
+
export async function cmdEventRepos(
|
|
1793
|
+
slug: string | undefined,
|
|
1794
|
+
repositories: string[],
|
|
1795
|
+
options: DeployCliOptions
|
|
1796
|
+
): Promise<number> {
|
|
1797
|
+
if (slug === undefined || slug === "") {
|
|
1798
|
+
(options.err ?? ((text: string) => void process.stderr.write(text)))(
|
|
1799
|
+
`Usage: ${CLI} event-repos <slug> --repo <owner/name>... [--team <id>] [--json]\n`
|
|
1800
|
+
);
|
|
1801
|
+
return 1;
|
|
1802
|
+
}
|
|
1803
|
+
const ctx = await prepare(options);
|
|
1804
|
+
if (typeof ctx === "number") {
|
|
1805
|
+
return ctx;
|
|
1806
|
+
}
|
|
1807
|
+
let configured: string[];
|
|
1808
|
+
try {
|
|
1809
|
+
configured = await ctx.client.setAgentkitEventRepositories({
|
|
1810
|
+
teamId: ctx.teamId,
|
|
1811
|
+
slug,
|
|
1812
|
+
repositories,
|
|
1813
|
+
});
|
|
1814
|
+
} catch (error) {
|
|
1815
|
+
return renderApiError(error, ctx.err);
|
|
1816
|
+
}
|
|
1817
|
+
if (ctx.json) {
|
|
1818
|
+
ctx.out(`${JSON.stringify({ repositories: configured }, null, 2)}\n`);
|
|
1819
|
+
} else if (configured.length === 0) {
|
|
1820
|
+
ctx.out(`${slug} now watches no repositories.\n`);
|
|
1821
|
+
} else {
|
|
1822
|
+
ctx.out(`${slug} now watches ${configured.join(", ")}.\n`);
|
|
1823
|
+
}
|
|
1824
|
+
return 0;
|
|
1825
|
+
}
|
|
1826
|
+
|
|
1827
|
+
// ============================================================================
|
|
1828
|
+
// upgrade <slug>
|
|
1829
|
+
// ============================================================================
|
|
1830
|
+
|
|
1831
|
+
/** Release ids are uuids; anything else the user typed is a version. */
|
|
1832
|
+
const RELEASE_ID_RE =
|
|
1833
|
+
/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
1834
|
+
|
|
1835
|
+
export async function cmdUpgrade(
|
|
1836
|
+
args: { slug: string | undefined; release: string | undefined },
|
|
1837
|
+
options: DeployCliOptions
|
|
1838
|
+
): Promise<number> {
|
|
1839
|
+
const { slug, release } = args;
|
|
1840
|
+
if (slug === undefined || slug === "") {
|
|
1841
|
+
(options.err ?? ((text: string) => void process.stderr.write(text)))(
|
|
1842
|
+
`Usage: ${CLI} upgrade <slug> [--release <id|version>] [--team <id>] [--json]\n`
|
|
1843
|
+
);
|
|
1844
|
+
return 1;
|
|
1845
|
+
}
|
|
1846
|
+
const ctx = await prepare(options);
|
|
1847
|
+
if (typeof ctx === "number") {
|
|
1848
|
+
return ctx;
|
|
1849
|
+
}
|
|
1850
|
+
const selector = release?.trim() ?? "";
|
|
1851
|
+
let releaseId: string;
|
|
1852
|
+
try {
|
|
1853
|
+
releaseId = await ctx.client.upgradeAgentkitInstall({
|
|
1854
|
+
teamId: ctx.teamId,
|
|
1855
|
+
slug,
|
|
1856
|
+
...(selector === ""
|
|
1857
|
+
? {}
|
|
1858
|
+
: RELEASE_ID_RE.test(selector)
|
|
1859
|
+
? { releaseId: selector }
|
|
1860
|
+
: { version: selector }),
|
|
1861
|
+
});
|
|
1862
|
+
} catch (error) {
|
|
1863
|
+
return renderApiError(error, ctx.err);
|
|
1864
|
+
}
|
|
1865
|
+
if (ctx.json) {
|
|
1866
|
+
ctx.out(`${JSON.stringify({ releaseId }, null, 2)}\n`);
|
|
1867
|
+
} else {
|
|
1868
|
+
ctx.out(`${slug} now runs release ${releaseId}.\n`);
|
|
1869
|
+
}
|
|
1586
1870
|
return 0;
|
|
1587
1871
|
}
|
|
1588
1872
|
|
|
@@ -1670,15 +1954,21 @@ export async function cmdRotateToken(
|
|
|
1670
1954
|
}
|
|
1671
1955
|
let aliasToken: string;
|
|
1672
1956
|
try {
|
|
1673
|
-
await
|
|
1957
|
+
const architecture = await deploymentArchitecture({
|
|
1674
1958
|
client: ctx.client,
|
|
1675
1959
|
teamId: ctx.teamId,
|
|
1676
1960
|
slug,
|
|
1677
1961
|
});
|
|
1678
|
-
aliasToken =
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1962
|
+
aliasToken =
|
|
1963
|
+
architecture === "v2"
|
|
1964
|
+
? await ctx.client.rotateAgentsdkAliasToken({
|
|
1965
|
+
teamId: ctx.teamId,
|
|
1966
|
+
slug,
|
|
1967
|
+
})
|
|
1968
|
+
: await ctx.client.rotateAliasToken({
|
|
1969
|
+
teamId: ctx.teamId,
|
|
1970
|
+
slug,
|
|
1971
|
+
});
|
|
1682
1972
|
} catch (error) {
|
|
1683
1973
|
return renderApiError(error, ctx.err);
|
|
1684
1974
|
}
|
|
@@ -1692,49 +1982,6 @@ export async function cmdRotateToken(
|
|
|
1692
1982
|
return 0;
|
|
1693
1983
|
}
|
|
1694
1984
|
|
|
1695
|
-
// ============================================================================
|
|
1696
|
-
// rotate-pod-credential <slug>
|
|
1697
|
-
// ============================================================================
|
|
1698
|
-
|
|
1699
|
-
export async function cmdRotatePodCredential(
|
|
1700
|
-
slug: string | undefined,
|
|
1701
|
-
options: DeployCliOptions
|
|
1702
|
-
): Promise<number> {
|
|
1703
|
-
if (slug === undefined || slug === "") {
|
|
1704
|
-
(options.err ?? ((t: string) => void process.stderr.write(t)))(
|
|
1705
|
-
`Usage: ${CLI} rotate-pod-credential <slug> [--team <id>]\n`
|
|
1706
|
-
);
|
|
1707
|
-
return 1;
|
|
1708
|
-
}
|
|
1709
|
-
const ctx = await prepare(options);
|
|
1710
|
-
if (typeof ctx === "number") {
|
|
1711
|
-
return ctx;
|
|
1712
|
-
}
|
|
1713
|
-
let podCredentialMaskedKey: string;
|
|
1714
|
-
try {
|
|
1715
|
-
await rejectV2ForLegacyCommand({
|
|
1716
|
-
client: ctx.client,
|
|
1717
|
-
teamId: ctx.teamId,
|
|
1718
|
-
slug,
|
|
1719
|
-
});
|
|
1720
|
-
podCredentialMaskedKey = await ctx.client.rotatePodCredential({
|
|
1721
|
-
teamId: ctx.teamId,
|
|
1722
|
-
slug,
|
|
1723
|
-
});
|
|
1724
|
-
} catch (error) {
|
|
1725
|
-
return renderApiError(error, ctx.err);
|
|
1726
|
-
}
|
|
1727
|
-
if (ctx.json) {
|
|
1728
|
-
ctx.out(`${JSON.stringify({ podCredentialMaskedKey }, null, 2)}\n`);
|
|
1729
|
-
return 0;
|
|
1730
|
-
}
|
|
1731
|
-
ctx.out(
|
|
1732
|
-
`Rotated the pod credential for ${slug}: ${podCredentialMaskedKey}\n` +
|
|
1733
|
-
`The running pod keeps the old credential until the next deploy — run \`${CLI} deploy --slug ${slug}\` to apply it.\n`
|
|
1734
|
-
);
|
|
1735
|
-
return 0;
|
|
1736
|
-
}
|
|
1737
|
-
|
|
1738
1985
|
// ============================================================================
|
|
1739
1986
|
// secrets set|list|unset
|
|
1740
1987
|
// ============================================================================
|
|
@@ -1778,7 +2025,7 @@ export async function cmdSecretsSet(
|
|
|
1778
2025
|
}
|
|
1779
2026
|
parsed.push(eq === -1 ? { name } : { name, value: spec.slice(eq + 1) });
|
|
1780
2027
|
}
|
|
1781
|
-
const hasArgvValues = parsed.some(
|
|
2028
|
+
const hasArgvValues = parsed.some(entry => entry.value !== undefined);
|
|
1782
2029
|
if (hasArgvValues && options.fromArgv !== true) {
|
|
1783
2030
|
usageErr(
|
|
1784
2031
|
`Refusing NAME=VALUE on argv (shows up in shell history and agent-captured terminals).\n` +
|
|
@@ -1811,8 +2058,9 @@ export async function cmdSecretsSet(
|
|
|
1811
2058
|
}
|
|
1812
2059
|
|
|
1813
2060
|
let secretNames: string[];
|
|
2061
|
+
let architecture: "v1" | "v2";
|
|
1814
2062
|
try {
|
|
1815
|
-
|
|
2063
|
+
architecture = await secretDeploymentArchitecture(ctx, slug);
|
|
1816
2064
|
secretNames =
|
|
1817
2065
|
architecture === "v2"
|
|
1818
2066
|
? await ctx.client.setAgentkitSecrets({
|
|
@@ -1835,7 +2083,9 @@ export async function cmdSecretsSet(
|
|
|
1835
2083
|
ctx.out(
|
|
1836
2084
|
`Set ${secrets.length} secret${secrets.length === 1 ? "" : "s"} on ${slug}.\n` +
|
|
1837
2085
|
`Secrets now set: ${secretNames.join(", ")}\n` +
|
|
1838
|
-
|
|
2086
|
+
(architecture === "v2"
|
|
2087
|
+
? `The next task picks them up; no redeploy is required.\n`
|
|
2088
|
+
: `The engine picks them up on its next deploy.\n`)
|
|
1839
2089
|
);
|
|
1840
2090
|
return 0;
|
|
1841
2091
|
}
|
|
@@ -1877,7 +2127,7 @@ export async function cmdSecretsList(
|
|
|
1877
2127
|
ctx.out(
|
|
1878
2128
|
`${renderTable(
|
|
1879
2129
|
["NAME", "CREATED"],
|
|
1880
|
-
secrets.map(
|
|
2130
|
+
secrets.map(secret => [secret.name, secret.createdAt])
|
|
1881
2131
|
)}\n`
|
|
1882
2132
|
);
|
|
1883
2133
|
return 0;
|
|
@@ -1936,10 +2186,10 @@ function createSecretValueReader(
|
|
|
1936
2186
|
err: (text: string) => void
|
|
1937
2187
|
): (name: string) => Promise<string> {
|
|
1938
2188
|
if (stdin.isTTY === true) {
|
|
1939
|
-
return
|
|
2189
|
+
return name => promptHidden(stdin, err, `Value for ${name}: `);
|
|
1940
2190
|
}
|
|
1941
2191
|
const readLine = createLineReader(stdin);
|
|
1942
|
-
return async
|
|
2192
|
+
return async name => {
|
|
1943
2193
|
const line = await readLine();
|
|
1944
2194
|
if (line === undefined) {
|
|
1945
2195
|
throw new DeployApiError(
|
|
@@ -1951,21 +2201,54 @@ function createSecretValueReader(
|
|
|
1951
2201
|
};
|
|
1952
2202
|
}
|
|
1953
2203
|
|
|
1954
|
-
/**
|
|
2204
|
+
/** Longest mask run drawn while typing a secret; the count carries the rest. */
|
|
2205
|
+
const SECRET_MASK_MAX_WIDTH = 24;
|
|
2206
|
+
|
|
2207
|
+
/**
|
|
2208
|
+
* One line of typing feedback for the hidden prompt. Echoing the value would
|
|
2209
|
+
* leak it, so the line carries a bounded mask plus the exact character count —
|
|
2210
|
+
* enough to see that keystrokes, backspaces, and pasted values landed. The
|
|
2211
|
+
* mask is clamped to the terminal width so the redraw stays on one line.
|
|
2212
|
+
*/
|
|
2213
|
+
function renderSecretPromptLine(
|
|
2214
|
+
prompt: string,
|
|
2215
|
+
length: number,
|
|
2216
|
+
dim: (text: string) => string
|
|
2217
|
+
): string {
|
|
2218
|
+
const count = `${length} char${length === 1 ? "" : "s"}`;
|
|
2219
|
+
const room =
|
|
2220
|
+
(process.stderr.columns ?? 80) - prompt.length - count.length - 2;
|
|
2221
|
+
const maskWidth = Math.max(0, Math.min(length, SECRET_MASK_MAX_WIDTH, room));
|
|
2222
|
+
// `·` over `•`: the rest of the CLI's progress output already uses it, and
|
|
2223
|
+
// fonts that ship no bullet glyph draw a tofu box in its place.
|
|
2224
|
+
const mask = "·".repeat(maskWidth);
|
|
2225
|
+
const body = mask === "" ? count : `${mask} ${count}`;
|
|
2226
|
+
return `\r\u001b[2K${prompt}${dim(body)}`;
|
|
2227
|
+
}
|
|
2228
|
+
|
|
2229
|
+
/**
|
|
2230
|
+
* Raw-mode hidden prompt: never echoes the value, redraws a mask + character
|
|
2231
|
+
* count as it is typed, supports backspace and Ctrl-C.
|
|
2232
|
+
*/
|
|
1955
2233
|
function promptHidden(
|
|
1956
2234
|
stdin: SecretInputStream,
|
|
1957
2235
|
err: (text: string) => void,
|
|
1958
2236
|
prompt: string
|
|
1959
2237
|
): Promise<string> {
|
|
1960
2238
|
return new Promise((resolvePromise, reject) => {
|
|
1961
|
-
|
|
2239
|
+
const { dim } = stderrPalette();
|
|
2240
|
+
let value = "";
|
|
2241
|
+
const draw = (): void => {
|
|
2242
|
+
err(renderSecretPromptLine(prompt, value.length, dim));
|
|
2243
|
+
};
|
|
2244
|
+
draw();
|
|
1962
2245
|
stdin.setRawMode?.(true);
|
|
1963
2246
|
stdin.resume();
|
|
1964
|
-
let value = "";
|
|
1965
2247
|
const cleanup = (): void => {
|
|
1966
2248
|
stdin.off("data", onData);
|
|
1967
2249
|
stdin.setRawMode?.(false);
|
|
1968
2250
|
stdin.pause();
|
|
2251
|
+
draw();
|
|
1969
2252
|
err("\n");
|
|
1970
2253
|
};
|
|
1971
2254
|
const onData = (chunk: Buffer | string): void => {
|
|
@@ -1987,6 +2270,8 @@ function promptHidden(
|
|
|
1987
2270
|
}
|
|
1988
2271
|
value += ch;
|
|
1989
2272
|
}
|
|
2273
|
+
// One redraw per chunk keeps a pasted value from flooding the terminal.
|
|
2274
|
+
draw();
|
|
1990
2275
|
};
|
|
1991
2276
|
stdin.on("data", onData);
|
|
1992
2277
|
});
|
|
@@ -2030,7 +2315,7 @@ export function createLineReader(
|
|
|
2030
2315
|
stream.resume();
|
|
2031
2316
|
|
|
2032
2317
|
return () =>
|
|
2033
|
-
new Promise(
|
|
2318
|
+
new Promise(resolvePromise => {
|
|
2034
2319
|
waiters.push(resolvePromise);
|
|
2035
2320
|
drain();
|
|
2036
2321
|
});
|
|
@@ -2261,7 +2546,7 @@ function renderApiError(
|
|
|
2261
2546
|
|
|
2262
2547
|
function renderTable(header: string[], rows: string[][]): string {
|
|
2263
2548
|
const widths = header.map((h, i) =>
|
|
2264
|
-
Math.max(h.length, ...rows.map(
|
|
2549
|
+
Math.max(h.length, ...rows.map(row => (row[i] ?? "").length))
|
|
2265
2550
|
);
|
|
2266
2551
|
const renderRow = (row: string[]): string =>
|
|
2267
2552
|
row
|