@cursor/july 0.1.93 → 0.1.95
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 +8 -20
- package/README.md +4 -26
- package/dist/channels/github/github-channel.d.ts.map +1 -1
- package/dist/channels/github/github-channel.js +14 -2
- package/dist/channels/github/types.d.ts +18 -3
- package/dist/channels/github/types.d.ts.map +1 -1
- package/dist/channels/origin/origin-channel.d.ts.map +1 -1
- package/dist/channels/origin/origin-channel.js +11 -3
- package/dist/channels/origin/origin-webhook.d.ts +11 -1
- package/dist/channels/origin/origin-webhook.d.ts.map +1 -1
- package/dist/channels/origin/origin-webhook.js +23 -3
- package/dist/channels/origin/types.d.ts +8 -0
- package/dist/channels/origin/types.d.ts.map +1 -1
- package/dist/channels/slack/attachments.js +2 -2
- package/dist/channels/slack/dispatch.d.ts +0 -7
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.js +4 -7
- package/dist/channels/slack/eval-directive.d.ts +5 -12
- package/dist/channels/slack/eval-directive.d.ts.map +1 -1
- package/dist/channels/slack/eval-directive.js +8 -19
- package/dist/channels/slack/index.d.ts +0 -6
- package/dist/channels/slack/index.d.ts.map +1 -1
- package/dist/channels/slack/index.js +0 -6
- package/dist/channels/slack/pr-ref.d.ts +7 -1
- package/dist/channels/slack/pr-ref.d.ts.map +1 -1
- package/dist/channels/slack/pr-ref.js +42 -23
- package/dist/channels/slack/setup.d.ts +4 -4
- package/dist/channels/slack/setup.d.ts.map +1 -1
- package/dist/channels/slack/setup.js +8 -15
- package/dist/channels/slack/slack-channel.d.ts +6 -13
- package/dist/channels/slack/slack-channel.d.ts.map +1 -1
- package/dist/channels/slack/slack-channel.js +15 -101
- package/dist/channels/slack/types.d.ts +12 -79
- package/dist/channels/slack/types.d.ts.map +1 -1
- package/dist/channels/slack/types.js +1 -15
- package/dist/client.d.ts +14 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +12 -0
- package/dist/connections.d.ts +18 -9
- package/dist/connections.d.ts.map +1 -1
- package/dist/connections.js +17 -8
- package/dist/docs/404.html +2 -2
- package/dist/docs/ab.html +4 -4
- package/dist/docs/assets/{app.CjWU-x0z.js → app.BBj0klBO.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.oqPawjiD.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.Cxy8ySFQ.js → VPLocalSearchBox.CUEXpL78.js} +1 -1
- package/dist/docs/assets/chunks/{theme.Dvq1Bktu.js → theme.DabmQnia.js} +2 -2
- package/dist/docs/assets/concepts.md.lwAgBIMI.js +1 -0
- package/dist/docs/assets/{deployment.md.DoLFAzfm.js → deployment.md.D9msOFOW.js} +3 -8
- package/dist/docs/assets/{deployment.md.DoLFAzfm.lean.js → deployment.md.D9msOFOW.lean.js} +1 -1
- package/dist/docs/assets/{guides_agent-to-agent.md.B3JIaAqz.js → guides_agent-to-agent.md.BDb0t1QV.js} +1 -1
- package/dist/docs/assets/guides_cloud-runtime.md.CkYbjnAX.js +9 -0
- package/dist/docs/assets/guides_cloud-runtime.md.CkYbjnAX.lean.js +1 -0
- package/dist/docs/assets/{guides_convert-automation.md.Bboisykk.js → guides_convert-automation.md.B4sjlodG.js} +1 -1
- package/dist/docs/assets/{guides_github.md.DqJhuaN1.js → guides_github.md.Cnh2mL4a.js} +1 -1
- package/dist/docs/assets/{guides_mcp-oauth.md.CJvrXtkN.js → guides_mcp-oauth.md.DPYmBCbV.js} +7 -9
- package/dist/docs/assets/{guides_mcp-oauth.md.CJvrXtkN.lean.js → guides_mcp-oauth.md.DPYmBCbV.lean.js} +1 -1
- package/dist/docs/assets/{guides_slack.md.mqeNKs84.js → guides_slack.md.C32HsdKk.js} +5 -11
- package/dist/docs/assets/guides_slack.md.C32HsdKk.lean.js +1 -0
- package/dist/docs/assets/index.md.BoHaMdeZ.js +5 -0
- package/dist/docs/assets/{index.md.B-lVR4wT.lean.js → index.md.BoHaMdeZ.lean.js} +1 -1
- package/dist/docs/assets/{quickstart.md.BrmfrrIr.js → quickstart.md.Nj_LjW_a.js} +1 -1
- package/dist/docs/assets/{reference_cli.md.D9KESDsD.js → reference_cli.md.BsMOxDvh.js} +4 -3
- package/dist/docs/assets/{reference_cli.md.D9KESDsD.lean.js → reference_cli.md.BsMOxDvh.lean.js} +1 -1
- package/dist/docs/assets/{reference_connections.md.DB6SsN6U.js → reference_connections.md.BH8Oc0D0.js} +5 -5
- package/dist/docs/assets/{reference_connections.md.DB6SsN6U.lean.js → reference_connections.md.BH8Oc0D0.lean.js} +1 -1
- package/dist/docs/assets/{reference_hooks.md.BxN87gCw.js → reference_hooks.md.a8BJxMR5.js} +1 -1
- package/dist/docs/assets/reference_http-api.md.D89k1mdm.js +11 -0
- package/dist/docs/assets/reference_http-api.md.D89k1mdm.lean.js +1 -0
- package/dist/docs/assets/reference_project-layout.md.Bv4KOtlB.js +19 -0
- package/dist/docs/assets/{reference_subagents.md.Xoav0AII.js → reference_subagents.md.CfsIloPm.js} +1 -1
- package/dist/docs/assets/{reference_tools.md.DuKvkYWG.js → reference_tools.md.BHeXn2id.js} +3 -3
- package/dist/docs/assets/{reference_tools.md.DuKvkYWG.lean.js → reference_tools.md.BHeXn2id.lean.js} +1 -1
- package/dist/docs/assets/{templates_agentic-owners.md.DqtPdm6f.js → templates_agentic-owners.md.BZSH4N9z.js} +1 -1
- package/dist/docs/assets/{templates_demo.md.DhFcWN6j.js → templates_demo.md.BeQX9V3H.js} +1 -1
- package/dist/docs/assets/{templates_pr-autofixer.md.R4K_qytS.js → templates_pr-autofixer.md.x5zl6-GT.js} +2 -2
- package/dist/docs/assets/{templates_pr-autofixer.md.R4K_qytS.lean.js → templates_pr-autofixer.md.x5zl6-GT.lean.js} +1 -1
- package/dist/docs/assets/templates_security-help.md.C3Ny_Qr2.js +4 -0
- package/dist/docs/assets/templates_security-help.md.C3Ny_Qr2.lean.js +1 -0
- package/dist/docs/assets/{templates_security-reviewer.md.ByFyRta2.js → templates_security-reviewer.md.lshxbCLK.js} +2 -2
- package/dist/docs/assets/{templates_security-reviewer.md.ByFyRta2.lean.js → templates_security-reviewer.md.lshxbCLK.lean.js} +1 -1
- package/dist/docs/assets/{templates_triage.md.CVlpctKS.js → templates_triage.md.Co4UNzkZ.js} +3 -3
- package/dist/docs/assets/{templates_triage.md.CVlpctKS.lean.js → templates_triage.md.Co4UNzkZ.lean.js} +1 -1
- package/dist/docs/assets/troubleshooting.md.Ctv3T8C2.js +1 -0
- package/dist/docs/building-with-agents.html +4 -4
- package/dist/docs/concepts.html +5 -5
- package/dist/docs/concepts.md +1 -0
- package/dist/docs/deployment.html +7 -12
- package/dist/docs/deployment.md +1 -20
- package/dist/docs/design/agsh.md +406 -0
- package/dist/docs/evals.html +4 -4
- package/dist/docs/guides/agent-to-agent.html +6 -6
- package/dist/docs/guides/agent-to-agent.md +2 -2
- package/dist/docs/guides/cloud-runtime.html +6 -6
- package/dist/docs/guides/cloud-runtime.md +1 -0
- package/dist/docs/guides/convert-automation.html +6 -6
- package/dist/docs/guides/convert-automation.md +1 -1
- package/dist/docs/guides/github.html +6 -6
- package/dist/docs/guides/github.md +4 -4
- package/dist/docs/guides/human-in-the-loop.html +4 -4
- package/dist/docs/guides/mcp-oauth.html +11 -13
- package/dist/docs/guides/mcp-oauth.md +10 -18
- package/dist/docs/guides/opentelemetry.html +5 -5
- package/dist/docs/guides/slack.html +9 -15
- package/dist/docs/guides/slack.md +9 -46
- package/dist/docs/guides/webhooks.html +4 -4
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +4 -4
- package/dist/docs/index.html +6 -6
- package/dist/docs/index.md +3 -29
- package/dist/docs/llms-full.txt +756 -2810
- package/dist/docs/llms.txt +3 -16
- package/dist/docs/quickstart.html +6 -6
- package/dist/docs/quickstart.md +2 -3
- package/dist/docs/reference/agent-config.html +4 -4
- package/dist/docs/reference/artifacts.html +4 -4
- package/dist/docs/reference/channels.html +4 -4
- package/dist/docs/reference/cli.html +8 -7
- package/dist/docs/reference/cli.md +5 -2
- package/dist/docs/reference/connections.html +9 -9
- package/dist/docs/reference/connections.md +15 -11
- package/dist/docs/reference/hooks.html +6 -6
- package/dist/docs/reference/hooks.md +2 -3
- package/dist/docs/reference/http-api.html +6 -6
- package/dist/docs/reference/http-api.md +8 -0
- package/dist/docs/reference/instructions.html +4 -4
- package/dist/docs/reference/playground.html +4 -4
- package/dist/docs/reference/project-layout.html +8 -6
- package/dist/docs/reference/project-layout.md +5 -1
- package/dist/docs/reference/prompt.html +4 -4
- package/dist/docs/reference/schedules.html +4 -4
- package/dist/docs/reference/sessions.html +4 -4
- package/dist/docs/reference/skills.html +4 -4
- package/dist/docs/reference/subagents.html +6 -6
- package/dist/docs/reference/subagents.md +2 -2
- package/dist/docs/reference/tools.html +7 -7
- package/dist/docs/reference/tools.md +19 -3
- package/dist/docs/scaffolding-agents.html +4 -4
- package/dist/docs/storage.html +4 -4
- package/dist/docs/templates/agentic-owners.html +7 -7
- package/dist/docs/templates/agentic-owners.md +1 -1
- package/dist/docs/templates/demo.html +6 -6
- package/dist/docs/templates/demo.md +3 -2
- package/dist/docs/templates/pr-autofixer.html +6 -6
- package/dist/docs/templates/pr-autofixer.md +8 -13
- package/dist/docs/templates/security-help.html +30 -0
- package/dist/docs/templates/security-help.md +65 -0
- package/dist/docs/templates/security-reviewer.html +6 -6
- package/dist/docs/templates/security-reviewer.md +1 -3
- package/dist/docs/templates/triage.html +7 -7
- package/dist/docs/templates/triage.md +2 -6
- package/dist/docs/troubleshooting.html +5 -5
- package/dist/docs/troubleshooting.md +2 -2
- package/dist/files-backends/cursor-hosted.d.ts +6 -2
- package/dist/files-backends/cursor-hosted.d.ts.map +1 -1
- package/dist/files-backends/cursor-hosted.js +2 -2
- package/dist/files.d.ts +2 -0
- package/dist/files.d.ts.map +1 -1
- package/dist/files.js +5 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/internal/advertise-tools.d.ts +11 -0
- package/dist/internal/advertise-tools.d.ts.map +1 -1
- package/dist/internal/advertise-tools.js +47 -9
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +135 -6
- package/dist/internal/cli-mcp-oauth.d.ts.map +1 -1
- package/dist/internal/cli-mcp-oauth.js +7 -4
- package/dist/internal/conversation-mirror.d.ts +82 -0
- package/dist/internal/conversation-mirror.d.ts.map +1 -0
- package/dist/internal/conversation-mirror.js +251 -0
- package/dist/internal/convert-automation/convert-workflow.d.ts.map +1 -1
- package/dist/internal/convert-automation/convert-workflow.js +26 -15
- package/dist/internal/convert-automation/slug.d.ts +0 -2
- package/dist/internal/convert-automation/slug.d.ts.map +1 -1
- package/dist/internal/convert-automation/slug.js +0 -8
- package/dist/internal/cursor/account-mcp.d.ts.map +1 -1
- package/dist/internal/cursor/account-mcp.js +5 -1
- package/dist/internal/deferred-channel-session.d.ts +20 -0
- package/dist/internal/deferred-channel-session.d.ts.map +1 -0
- package/dist/internal/deferred-channel-session.js +62 -0
- package/dist/internal/deploy-client.d.ts +13 -1
- package/dist/internal/deploy-client.d.ts.map +1 -1
- package/dist/internal/deploy-client.js +11 -1
- package/dist/internal/deploy-manifest.d.ts.map +1 -1
- package/dist/internal/deploy-manifest.js +11 -5
- package/dist/internal/discovery.d.ts.map +1 -1
- package/dist/internal/discovery.js +110 -15
- package/dist/internal/framework-storage-selection.d.ts +32 -16
- package/dist/internal/framework-storage-selection.d.ts.map +1 -1
- package/dist/internal/framework-storage-selection.js +51 -17
- package/dist/internal/hosted-admission-context.d.ts +20 -0
- package/dist/internal/hosted-admission-context.d.ts.map +1 -0
- package/dist/internal/hosted-admission-context.js +31 -0
- package/dist/internal/hosted-delivery-protocol.d.ts +5 -0
- package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
- package/dist/internal/hosted-delivery-protocol.js +33 -1
- package/dist/internal/hosted-delivery.d.ts +4 -2
- package/dist/internal/hosted-delivery.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.js +97 -44
- package/dist/internal/hosted-managed-automation.d.ts +30 -0
- package/dist/internal/hosted-managed-automation.d.ts.map +1 -0
- package/dist/internal/hosted-managed-automation.js +58 -0
- package/dist/internal/mcp-endpoint.js +3 -3
- package/dist/internal/mcp-host.d.ts +8 -7
- package/dist/internal/mcp-host.d.ts.map +1 -1
- package/dist/internal/mcp-host.js +8 -7
- package/dist/internal/peer-connections.d.ts.map +1 -1
- package/dist/internal/peer-connections.js +5 -1
- package/dist/internal/playground/static.d.ts +0 -3
- package/dist/internal/playground/static.d.ts.map +1 -1
- package/dist/internal/resolved-connections.d.ts.map +1 -1
- package/dist/internal/resolved-connections.js +5 -7
- package/dist/internal/review-comments.d.ts.map +1 -1
- package/dist/internal/review-comments.js +10 -98
- package/dist/internal/scm/pr-url.d.ts +14 -0
- package/dist/internal/scm/pr-url.d.ts.map +1 -0
- package/dist/internal/scm/pr-url.js +65 -0
- package/dist/internal/sdk-runner.d.ts +14 -0
- package/dist/internal/sdk-runner.d.ts.map +1 -1
- package/dist/internal/sdk-runner.js +41 -2
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +123 -174
- package/dist/internal/session-engine.d.ts +45 -10
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +217 -65
- package/dist/internal/tool-catalog.d.ts +31 -0
- package/dist/internal/tool-catalog.d.ts.map +1 -0
- package/dist/internal/tool-catalog.js +67 -0
- package/dist/playground/assets/index-CF7hUDnQ.css +1 -0
- package/dist/playground/assets/{index-D9MFzhNE.js → index-CZA1uEWA.js} +48 -48
- package/dist/playground/index.html +2 -2
- package/dist/storage-backends/cursor-hosted.d.ts +7 -2
- package/dist/storage-backends/cursor-hosted.d.ts.map +1 -1
- package/dist/storage-backends/cursor-hosted.js +2 -2
- package/dist/types.d.ts +72 -23
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +19 -0
- package/docs/README.md +3 -29
- package/docs/concepts.md +1 -0
- package/docs/deployment.md +1 -20
- package/docs/design/agsh.md +406 -0
- package/docs/guides/agent-to-agent.md +2 -2
- package/docs/guides/cloud-runtime.md +1 -0
- package/docs/guides/convert-automation.md +1 -1
- package/docs/guides/github.md +4 -4
- package/docs/guides/mcp-oauth.md +10 -18
- package/docs/guides/slack.md +10 -47
- package/docs/quickstart.md +2 -3
- package/docs/reference/cli.md +5 -2
- package/docs/reference/connections.md +15 -11
- package/docs/reference/hooks.md +2 -3
- package/docs/reference/http-api.md +8 -0
- package/docs/reference/project-layout.md +5 -1
- package/docs/reference/subagents.md +2 -2
- package/docs/reference/tools.md +19 -3
- package/docs/templates/agentic-owners.md +1 -1
- package/docs/templates/demo.md +3 -2
- package/docs/templates/pr-autofixer.md +8 -13
- package/docs/templates/security-help.md +70 -0
- package/docs/templates/security-reviewer.md +1 -3
- package/docs/templates/triage.md +2 -6
- package/docs/troubleshooting.md +2 -2
- package/package.json +9 -2
- package/skills/create-agent/SKILL.md +6 -13
- package/skills/debug/SKILL.md +2 -4
- package/skills/evals/SKILL.md +1 -1
- package/skills/framework-map/SKILL.md +3 -2
- package/skills/mcp-auth/SKILL.md +10 -13
- package/skills/setup-slack/SKILL.md +21 -137
- package/src/channels/github/github-channel.ts +23 -8
- package/src/channels/github/types.ts +19 -2
- package/src/channels/origin/origin-channel.ts +13 -1
- package/src/channels/origin/origin-webhook.ts +27 -3
- package/src/channels/origin/types.ts +8 -0
- package/src/channels/slack/attachments.ts +2 -2
- package/src/channels/slack/dispatch.ts +2 -16
- package/src/channels/slack/eval-directive.ts +8 -27
- package/src/channels/slack/index.ts +0 -6
- package/src/channels/slack/pr-ref.ts +56 -25
- package/src/channels/slack/setup.ts +8 -15
- package/src/channels/slack/slack-channel.ts +14 -125
- package/src/channels/slack/types.ts +12 -96
- package/src/client.ts +23 -0
- package/src/connections.ts +20 -7
- package/src/files-backends/cursor-hosted.ts +9 -3
- package/src/files.ts +11 -0
- package/src/index.ts +2 -0
- package/src/internal/advertise-tools.ts +45 -7
- package/src/internal/cli-deploy.ts +171 -7
- package/src/internal/cli-mcp-oauth.ts +6 -4
- package/src/internal/conversation-mirror.ts +330 -0
- package/src/internal/convert-automation/convert-workflow.ts +29 -17
- package/src/internal/convert-automation/slug.ts +0 -9
- package/src/internal/cursor/account-mcp.ts +4 -1
- package/src/internal/deferred-channel-session.ts +61 -0
- package/src/internal/deploy-client.ts +24 -1
- package/src/internal/deploy-manifest.ts +10 -5
- package/src/internal/discovery.ts +129 -15
- package/src/internal/fixtures/units-server.ts +52 -0
- package/src/internal/framework-storage-selection.ts +61 -19
- package/src/internal/hosted-admission-context.ts +37 -0
- package/src/internal/hosted-delivery-protocol.ts +44 -1
- package/src/internal/hosted-delivery.ts +155 -68
- package/src/internal/hosted-managed-automation.ts +72 -0
- package/src/internal/mcp-endpoint.ts +3 -3
- package/src/internal/mcp-host.ts +8 -7
- package/src/internal/peer-connections.ts +4 -1
- package/src/internal/playground/static.ts +1 -3
- package/src/internal/resolved-connections.ts +8 -10
- package/src/internal/review-comments.ts +10 -113
- package/src/internal/scm/pr-url.ts +95 -0
- package/src/internal/sdk-runner.ts +57 -2
- package/src/internal/server.ts +161 -251
- package/src/internal/session-engine.ts +266 -69
- package/src/internal/tool-catalog.ts +106 -0
- package/src/storage-backends/cursor-hosted.ts +10 -3
- package/src/types.ts +90 -23
- package/templates/agentic-owners/README.md +1 -1
- package/templates/agentic-owners/agent/agent.ts +0 -10
- package/templates/agentic-owners/agent/channels/github.ts +5 -14
- package/templates/agentic-owners/agent/lib/config.ts +0 -8
- package/templates/agentic-owners/agent/lib/review.ts +2 -15
- package/templates/agentic-owners/agent/tools/record_review.ts +2 -4
- package/templates/demo/agent/agent.ts +0 -10
- package/templates/pr-autofixer/README.md +0 -2
- package/templates/pr-autofixer/agent/agent.ts +0 -11
- package/templates/pr-autofixer/agent/channels/slack.ts +1 -2
- package/templates/pr-autofixer/agent/lib/pr-state.ts +5 -17
- package/templates/pr-autofixer/agent/lib/repos.ts +0 -1
- package/templates/security-help/README.md +2 -2
- package/templates/security-help/agent/agent.ts +1 -2
- package/templates/security-help/agent/channels/slack.ts +0 -3
- package/templates/security-help/agent/instructions.md +9 -10
- package/templates/security-help/agent/skills/access-request.md +1 -1
- package/templates/security-help/agent/skills/faq.md +31 -0
- package/templates/security-help/agent/skills/security-playbooks.md +1 -1
- package/templates/security-help/package.json +1 -2
- package/templates/security-reviewer/agent/agent.ts +0 -10
- package/templates/triage/README.md +2 -1
- package/templates/triage/agent/agent.ts +0 -10
- package/templates/triage/agent/channels/queue.ts +1 -1
- package/templates/triage/agent/channels/webhook.ts +1 -3
- package/templates/triage/overlays/jira/agent/mcp-connections/tracker.ts +0 -1
- package/templates/triage/overlays/linear/agent/mcp-connections/tracker.ts +0 -1
- package/dist/channels/slack/cursor-account.d.ts +0 -87
- package/dist/channels/slack/cursor-account.d.ts.map +0 -1
- package/dist/channels/slack/cursor-account.js +0 -100
- package/dist/docs/assets/chunks/@localSearchIndexroot.ChpIC3Zy.js +0 -1
- package/dist/docs/assets/concepts.md.F6AiPorA.js +0 -1
- package/dist/docs/assets/example-agents_approval-buddy.md.DmezILPg.js +0 -10
- package/dist/docs/assets/example-agents_approval-buddy.md.DmezILPg.lean.js +0 -1
- package/dist/docs/assets/example-agents_benny.md.B0kwY7D_.js +0 -5
- package/dist/docs/assets/example-agents_benny.md.B0kwY7D_.lean.js +0 -1
- package/dist/docs/assets/example-agents_bugbot.md.BRGMi9O2.js +0 -11
- package/dist/docs/assets/example-agents_bugbot.md.BRGMi9O2.lean.js +0 -1
- package/dist/docs/assets/example-agents_codebase-wiki.md.BBNw9Ekr.js +0 -8
- package/dist/docs/assets/example-agents_codebase-wiki.md.BBNw9Ekr.lean.js +0 -1
- package/dist/docs/assets/example-agents_codeowners-review.md.Bfta-lBU.js +0 -8
- package/dist/docs/assets/example-agents_codeowners-review.md.Bfta-lBU.lean.js +0 -1
- package/dist/docs/assets/example-agents_concierge.md.BzB2b20R.js +0 -22
- package/dist/docs/assets/example-agents_concierge.md.BzB2b20R.lean.js +0 -1
- package/dist/docs/assets/example-agents_index.md.ChBp0AX6.js +0 -2
- package/dist/docs/assets/example-agents_index.md.ChBp0AX6.lean.js +0 -1
- package/dist/docs/assets/example-agents_knowledge-base.md.CrA85ig-.js +0 -11
- package/dist/docs/assets/example-agents_knowledge-base.md.CrA85ig-.lean.js +0 -1
- package/dist/docs/assets/example-agents_oncall.md.DK4XkYTd.js +0 -10
- package/dist/docs/assets/example-agents_oncall.md.DK4XkYTd.lean.js +0 -1
- package/dist/docs/assets/example-agents_security-reviewer.md.74pPpWYj.js +0 -19
- package/dist/docs/assets/example-agents_security-reviewer.md.74pPpWYj.lean.js +0 -1
- package/dist/docs/assets/example-agents_slack-agent.md.D7Kdj5BV.js +0 -5
- package/dist/docs/assets/example-agents_slack-agent.md.D7Kdj5BV.lean.js +0 -1
- package/dist/docs/assets/example-agents_weather-agent.md.CaGpmw3Y.js +0 -25
- package/dist/docs/assets/example-agents_weather-agent.md.CaGpmw3Y.lean.js +0 -1
- package/dist/docs/assets/guides_cloud-runtime.md.BnvjPiia.js +0 -9
- package/dist/docs/assets/guides_cloud-runtime.md.BnvjPiia.lean.js +0 -1
- package/dist/docs/assets/guides_slack.md.mqeNKs84.lean.js +0 -1
- package/dist/docs/assets/index.md.B-lVR4wT.js +0 -5
- package/dist/docs/assets/reference_http-api.md.C68BERYr.js +0 -11
- package/dist/docs/assets/reference_http-api.md.C68BERYr.lean.js +0 -1
- package/dist/docs/assets/reference_project-layout.md.WN9nwJht.js +0 -17
- package/dist/docs/assets/troubleshooting.md.vCWwvqcJ.js +0 -1
- package/dist/docs/example-agents/approval-buddy.html +0 -36
- package/dist/docs/example-agents/approval-buddy.md +0 -266
- package/dist/docs/example-agents/benny.html +0 -31
- package/dist/docs/example-agents/benny.md +0 -173
- package/dist/docs/example-agents/bugbot.html +0 -37
- package/dist/docs/example-agents/bugbot.md +0 -229
- package/dist/docs/example-agents/codebase-wiki.html +0 -34
- package/dist/docs/example-agents/codebase-wiki.md +0 -167
- package/dist/docs/example-agents/codeowners-review.html +0 -34
- package/dist/docs/example-agents/codeowners-review.md +0 -192
- package/dist/docs/example-agents/concierge.html +0 -48
- package/dist/docs/example-agents/concierge.md +0 -200
- package/dist/docs/example-agents/index.html +0 -28
- package/dist/docs/example-agents/index.md +0 -99
- package/dist/docs/example-agents/knowledge-base.html +0 -37
- package/dist/docs/example-agents/knowledge-base.md +0 -168
- package/dist/docs/example-agents/oncall.html +0 -36
- package/dist/docs/example-agents/oncall.md +0 -212
- package/dist/docs/example-agents/security-reviewer.html +0 -45
- package/dist/docs/example-agents/security-reviewer.md +0 -265
- package/dist/docs/example-agents/slack-agent.html +0 -31
- package/dist/docs/example-agents/slack-agent.md +0 -142
- package/dist/docs/example-agents/weather-agent.html +0 -51
- package/dist/docs/example-agents/weather-agent.md +0 -297
- package/dist/internal/cursor-slack-relay.d.ts +0 -96
- package/dist/internal/cursor-slack-relay.d.ts.map +0 -1
- package/dist/internal/cursor-slack-relay.js +0 -176
- package/dist/playground/assets/index-D9N7-q97.css +0 -1
- package/docs/example-agents/approval-buddy.md +0 -271
- package/docs/example-agents/benny.md +0 -178
- package/docs/example-agents/bugbot.md +0 -234
- package/docs/example-agents/codebase-wiki.md +0 -172
- package/docs/example-agents/codeowners-review.md +0 -197
- package/docs/example-agents/concierge.md +0 -205
- package/docs/example-agents/index.md +0 -104
- package/docs/example-agents/knowledge-base.md +0 -173
- package/docs/example-agents/oncall.md +0 -217
- package/docs/example-agents/security-reviewer.md +0 -270
- package/docs/example-agents/slack-agent.md +0 -147
- package/docs/example-agents/weather-agent.md +0 -302
- package/src/channels/slack/cursor-account.ts +0 -202
- package/src/internal/cursor-slack-relay.ts +0 -249
- package/templates/security-help/agent/knowledge/faq/approvals.md +0 -5
- package/templates/security-help/agent/knowledge/faq/channels.md +0 -6
- package/templates/security-help/agent/knowledge/faq/phishing.md +0 -10
- package/templates/security-help/agent/skills/security-first-pass.md +0 -15
- /package/dist/docs/assets/{concepts.md.F6AiPorA.lean.js → concepts.md.lwAgBIMI.lean.js} +0 -0
- /package/dist/docs/assets/{guides_agent-to-agent.md.B3JIaAqz.lean.js → guides_agent-to-agent.md.BDb0t1QV.lean.js} +0 -0
- /package/dist/docs/assets/{guides_convert-automation.md.Bboisykk.lean.js → guides_convert-automation.md.B4sjlodG.lean.js} +0 -0
- /package/dist/docs/assets/{guides_github.md.DqJhuaN1.lean.js → guides_github.md.Cnh2mL4a.lean.js} +0 -0
- /package/dist/docs/assets/{quickstart.md.BrmfrrIr.lean.js → quickstart.md.Nj_LjW_a.lean.js} +0 -0
- /package/dist/docs/assets/{reference_hooks.md.BxN87gCw.lean.js → reference_hooks.md.a8BJxMR5.lean.js} +0 -0
- /package/dist/docs/assets/{reference_project-layout.md.WN9nwJht.lean.js → reference_project-layout.md.Bv4KOtlB.lean.js} +0 -0
- /package/dist/docs/assets/{reference_subagents.md.Xoav0AII.lean.js → reference_subagents.md.CfsIloPm.lean.js} +0 -0
- /package/dist/docs/assets/{templates_agentic-owners.md.DqtPdm6f.lean.js → templates_agentic-owners.md.BZSH4N9z.lean.js} +0 -0
- /package/dist/docs/assets/{templates_demo.md.DhFcWN6j.lean.js → templates_demo.md.BeQX9V3H.lean.js} +0 -0
- /package/dist/docs/assets/{troubleshooting.md.vCWwvqcJ.lean.js → troubleshooting.md.Ctv3T8C2.lean.js} +0 -0
|
@@ -1,249 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pulls `/v0/slack-events` into agent-serve: register the mounted
|
|
3
|
-
* cursor-account Slack agents (name + icon) with the Cursor backend, then
|
|
4
|
-
* long-poll routed events with a durable offset under
|
|
5
|
-
* `<stateDir>/offset.json` and dispatch each to the agent it addresses.
|
|
6
|
-
* Outbound Slack Web API calls are proxied through `POST /v0/slack-events/api`
|
|
7
|
-
* via a per-agent {@link SlackApiTransport} binding.
|
|
8
|
-
*
|
|
9
|
-
* Same lifecycle rules as the SCM relay (`cursor-event-relay.ts`):
|
|
10
|
-
* registration-gated consumption, heartbeat re-registration, durable
|
|
11
|
-
* consumer id, at-least-once dispatch with client-owned offsets.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
import type { CursorSlackEnvelope } from "../channels/slack/cursor-account.js";
|
|
15
|
-
import {
|
|
16
|
-
CursorRelayCore,
|
|
17
|
-
describeRelayError,
|
|
18
|
-
type RelayAdapter,
|
|
19
|
-
} from "./cursor-relay-core.js";
|
|
20
|
-
|
|
21
|
-
/** One agent this host registers over the Cursor Slack connection. */
|
|
22
|
-
export interface CursorSlackAgentRegistration {
|
|
23
|
-
name: string;
|
|
24
|
-
iconUrl?: string;
|
|
25
|
-
iconEmoji?: string;
|
|
26
|
-
/** Opt out of the default external-sender block. */
|
|
27
|
-
blockExternals?: boolean;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
interface RegistrationResponse {
|
|
31
|
-
workspaces?: Array<{
|
|
32
|
-
slackTeamId: string;
|
|
33
|
-
isSubscribed: boolean;
|
|
34
|
-
detail?: string;
|
|
35
|
-
}>;
|
|
36
|
-
agents?: Array<{ name: string; isSubscribed: boolean; detail?: string }>;
|
|
37
|
-
expiresAt?: string;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/** One relayed event as delivered to {@link CursorSlackRelayOptions.dispatch}. */
|
|
41
|
-
export type CursorSlackRelayEvent = CursorSlackEnvelope & { offset: string };
|
|
42
|
-
|
|
43
|
-
export interface CursorSlackRelayOptions {
|
|
44
|
-
baseUrl: string;
|
|
45
|
-
apiKey: string;
|
|
46
|
-
agents: readonly CursorSlackAgentRegistration[];
|
|
47
|
-
stateDir: string;
|
|
48
|
-
/**
|
|
49
|
-
* Called for each event addressed to this consumer's agents; failures
|
|
50
|
-
* retry a bounded number of times, then log and skip.
|
|
51
|
-
*/
|
|
52
|
-
dispatch: (envelope: CursorSlackRelayEvent) => Promise<void>;
|
|
53
|
-
logger: (line: string) => void;
|
|
54
|
-
/** Test seam. Defaults to global fetch. */
|
|
55
|
-
fetchImpl?: typeof fetch;
|
|
56
|
-
/** Test seam: override long-poll wait (default 25s). */
|
|
57
|
-
pollWaitMs?: number;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/** Human-readable log fragment for one relayed Slack event. */
|
|
61
|
-
export function formatCursorSlackEventLog(envelope: {
|
|
62
|
-
eventName: string;
|
|
63
|
-
agentName: string;
|
|
64
|
-
matchedBy: string;
|
|
65
|
-
channelId: string;
|
|
66
|
-
threadTs: string;
|
|
67
|
-
receivedAtMs: number;
|
|
68
|
-
eventId?: string;
|
|
69
|
-
}): string {
|
|
70
|
-
const received = new Date(envelope.receivedAtMs).toISOString();
|
|
71
|
-
return `${envelope.eventName} → ${envelope.agentName} (${envelope.matchedBy}) in ${envelope.channelId}/${envelope.threadTs} received=${received} (${envelope.eventId ?? "no event id"})`;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Build the backend proxy caller one agent's {@link SlackApiTransport}
|
|
76
|
-
* binds to. Returns Slack-shaped `{ ok: false, error }` bodies on transport
|
|
77
|
-
* failures so channel soft-fail paths behave exactly like direct Web API
|
|
78
|
-
* callers.
|
|
79
|
-
*/
|
|
80
|
-
export function createCursorSlackApiCaller(args: {
|
|
81
|
-
baseUrl: string;
|
|
82
|
-
apiKey: string;
|
|
83
|
-
agentName: string;
|
|
84
|
-
consumerId: string;
|
|
85
|
-
fetchImpl?: typeof fetch;
|
|
86
|
-
logger?: (line: string) => void;
|
|
87
|
-
}): (
|
|
88
|
-
method: string,
|
|
89
|
-
callArgs: Record<string, unknown>
|
|
90
|
-
) => Promise<Record<string, unknown>> {
|
|
91
|
-
const fetchImpl = args.fetchImpl ?? fetch;
|
|
92
|
-
const url = `${args.baseUrl.replace(/\/+$/, "")}/v0/slack-events/api`;
|
|
93
|
-
return async (method, callArgs) => {
|
|
94
|
-
try {
|
|
95
|
-
const response = await fetchImpl(url, {
|
|
96
|
-
method: "POST",
|
|
97
|
-
headers: {
|
|
98
|
-
authorization: `Bearer ${args.apiKey}`,
|
|
99
|
-
"content-type": "application/json",
|
|
100
|
-
},
|
|
101
|
-
body: JSON.stringify({
|
|
102
|
-
method,
|
|
103
|
-
arguments: callArgs,
|
|
104
|
-
agentName: args.agentName,
|
|
105
|
-
consumerId: args.consumerId,
|
|
106
|
-
}),
|
|
107
|
-
});
|
|
108
|
-
const body = (await response.json().catch(() => undefined)) as
|
|
109
|
-
| Record<string, unknown>
|
|
110
|
-
| undefined;
|
|
111
|
-
if (body !== undefined && typeof body === "object") {
|
|
112
|
-
if (!response.ok && body.ok === undefined) {
|
|
113
|
-
const error =
|
|
114
|
-
typeof body.error === "string"
|
|
115
|
-
? body.error
|
|
116
|
-
: `cursor_backend_http_${response.status}`;
|
|
117
|
-
return { ok: false, error };
|
|
118
|
-
}
|
|
119
|
-
return body;
|
|
120
|
-
}
|
|
121
|
-
return {
|
|
122
|
-
ok: false,
|
|
123
|
-
error: `cursor_backend_http_${response.status}`,
|
|
124
|
-
};
|
|
125
|
-
} catch (error) {
|
|
126
|
-
args.logger?.(
|
|
127
|
-
`[agent-sdk] cursor-slack: ${method} proxy call failed: ${describeRelayError(error)}`
|
|
128
|
-
);
|
|
129
|
-
return { ok: false, error: "cursor_backend_unreachable" };
|
|
130
|
-
}
|
|
131
|
-
};
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* Cursor Slack relay: a thin {@link CursorRelayCore} adapter. Keeps the same
|
|
136
|
-
* `new CursorSlackRelay(options)` surface with `.resolveConsumerId()`,
|
|
137
|
-
* `.start()`, and `.stop()` (the server binds outbound transports with the
|
|
138
|
-
* resolved consumer id before starting).
|
|
139
|
-
*/
|
|
140
|
-
export class CursorSlackRelay {
|
|
141
|
-
private readonly core: CursorRelayCore<CursorSlackRelayEvent>;
|
|
142
|
-
/**
|
|
143
|
-
* Agent names (lowercased) the server confirmed for THIS consumer. The
|
|
144
|
-
* stream is shared with sibling consumers of the same principal, so only
|
|
145
|
-
* events for these agents (and this consumer id) may dispatch.
|
|
146
|
-
*/
|
|
147
|
-
private subscribedAgents = new Set<string>();
|
|
148
|
-
private consumerId = "";
|
|
149
|
-
|
|
150
|
-
constructor(private readonly options: CursorSlackRelayOptions) {
|
|
151
|
-
const adapter: RelayAdapter<CursorSlackRelayEvent> = {
|
|
152
|
-
logPrefix: "cursor-slack",
|
|
153
|
-
subscribePath: "/v0/slack-events/subscriptions",
|
|
154
|
-
pollPath: "/v0/slack-events",
|
|
155
|
-
buildRegistrationBody: (consumerId) => {
|
|
156
|
-
this.consumerId = consumerId;
|
|
157
|
-
return {
|
|
158
|
-
consumerId,
|
|
159
|
-
// Optional fields may be undefined — JSON.stringify drops them
|
|
160
|
-
// from the registration body.
|
|
161
|
-
agents: this.options.agents.map((agent) => ({
|
|
162
|
-
name: agent.name,
|
|
163
|
-
iconUrl: agent.iconUrl,
|
|
164
|
-
iconEmoji: agent.iconEmoji,
|
|
165
|
-
blockExternals: agent.blockExternals === false ? false : undefined,
|
|
166
|
-
})),
|
|
167
|
-
};
|
|
168
|
-
},
|
|
169
|
-
// Empty agents drop this consumer's registration on clean stop, so a
|
|
170
|
-
// redeployed sibling's identical agent names never tie with this
|
|
171
|
-
// host's ghost until the server-side TTL lapses.
|
|
172
|
-
buildDeregistrationBody: (consumerId) => ({ consumerId, agents: [] }),
|
|
173
|
-
applyRegistrationResponse: (json) => {
|
|
174
|
-
const result = json as RegistrationResponse;
|
|
175
|
-
const agentStatuses = result.agents ?? [];
|
|
176
|
-
this.subscribedAgents = new Set(
|
|
177
|
-
agentStatuses
|
|
178
|
-
.filter((status) => status.isSubscribed)
|
|
179
|
-
.map((status) => status.name.toLowerCase())
|
|
180
|
-
);
|
|
181
|
-
const failures = [
|
|
182
|
-
...(result.workspaces ?? [])
|
|
183
|
-
.filter((workspace) => !workspace.isSubscribed)
|
|
184
|
-
.map(
|
|
185
|
-
(workspace) =>
|
|
186
|
-
`workspace ${workspace.slackTeamId}: ${workspace.detail ?? "not subscribed"}`
|
|
187
|
-
),
|
|
188
|
-
...agentStatuses
|
|
189
|
-
.filter((status) => !status.isSubscribed)
|
|
190
|
-
.map(
|
|
191
|
-
(status) => `agent ${status.name}: ${status.detail ?? "rejected"}`
|
|
192
|
-
),
|
|
193
|
-
];
|
|
194
|
-
if (failures.length > 0) {
|
|
195
|
-
return failures;
|
|
196
|
-
}
|
|
197
|
-
const workspaceIds = (result.workspaces ?? [])
|
|
198
|
-
.filter((workspace) => workspace.isSubscribed)
|
|
199
|
-
.map((workspace) => workspace.slackTeamId);
|
|
200
|
-
return [
|
|
201
|
-
`registered ${[...this.subscribedAgents].join(", ")} on Slack workspace ${workspaceIds.join(", ")}`,
|
|
202
|
-
];
|
|
203
|
-
},
|
|
204
|
-
shouldDispatch: (event) => this.shouldDispatch(event),
|
|
205
|
-
dispatch: (event) => this.options.dispatch(event),
|
|
206
|
-
};
|
|
207
|
-
this.core = new CursorRelayCore<CursorSlackRelayEvent>({
|
|
208
|
-
baseUrl: options.baseUrl,
|
|
209
|
-
apiKey: options.apiKey,
|
|
210
|
-
stateDir: options.stateDir,
|
|
211
|
-
adapter,
|
|
212
|
-
logger: options.logger,
|
|
213
|
-
...(options.fetchImpl === undefined
|
|
214
|
-
? {}
|
|
215
|
-
: { fetchImpl: options.fetchImpl }),
|
|
216
|
-
...(options.pollWaitMs === undefined
|
|
217
|
-
? {}
|
|
218
|
-
: { pollWaitMs: options.pollWaitMs }),
|
|
219
|
-
});
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
/**
|
|
223
|
-
* Resolve the durable consumer id before starting, so transports can bind
|
|
224
|
-
* with it. Also used by tests.
|
|
225
|
-
*/
|
|
226
|
-
async resolveConsumerId(): Promise<string> {
|
|
227
|
-
this.consumerId = await this.core.resolveConsumerId();
|
|
228
|
-
return this.consumerId;
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
/**
|
|
232
|
-
* Whether a relayed event belongs to THIS consumer: the backend stamps
|
|
233
|
-
* each envelope with the registering consumer id and agent.
|
|
234
|
-
*/
|
|
235
|
-
private shouldDispatch(event: CursorSlackRelayEvent): boolean {
|
|
236
|
-
if (event.consumerId !== this.consumerId) {
|
|
237
|
-
return false;
|
|
238
|
-
}
|
|
239
|
-
return this.subscribedAgents.has(event.agentName.toLowerCase());
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
start(): void {
|
|
243
|
-
this.core.start();
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
async stop(): Promise<void> {
|
|
247
|
-
await this.core.stop();
|
|
248
|
-
}
|
|
249
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
# Phishing
|
|
2
|
-
|
|
3
|
-
`#security` is where phishing and unexpected texts, emails, or calls go.
|
|
4
|
-
If the thread is already about that, keep it there.
|
|
5
|
-
|
|
6
|
-
Leave the original message alone. Do not reply, click, or send a 2FA code on it.
|
|
7
|
-
Confirm unknown texts or calls over Slack or in person before acting.
|
|
8
|
-
|
|
9
|
-
If an account looks compromised, they should lock it now and wait for a human.
|
|
10
|
-
If security already gave a verdict in-thread, follow that.
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
description: use for Slack security questions; open the skill or FAQ you need
|
|
3
|
-
---
|
|
4
|
-
|
|
5
|
-
# Security questions
|
|
6
|
-
|
|
7
|
-
Open the security skill or FAQ for the ask.
|
|
8
|
-
|
|
9
|
-
SaaS access, identity groups, laptops, and billing go to the team named in `agent/knowledge/faq/channels.md`.
|
|
10
|
-
|
|
11
|
-
If this looks like production secrets out, an exploit, customer data out, malware, or an account takeover, they should stop it now and wait for a human.
|
|
12
|
-
|
|
13
|
-
Training, retention, or policy ownership: `agent/knowledge/faq/approvals.md`.
|
|
14
|
-
|
|
15
|
-
If the skills and the topic file for this ask do not have it, say you do not know and ask a human.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/docs/assets/{guides_github.md.DqJhuaN1.lean.js → guides_github.md.Cnh2mL4a.lean.js}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/dist/docs/assets/{templates_demo.md.DhFcWN6j.lean.js → templates_demo.md.BeQX9V3H.lean.js}
RENAMED
|
File without changes
|
|
File without changes
|