@cursor/july 0.1.102 → 0.1.104
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 +34 -32
- package/README.md +10 -12
- package/dist/ab.d.ts +1 -1
- package/dist/ab.js +1 -1
- package/dist/bin/agent-serve.d.ts +12 -12
- package/dist/bin/agent-serve.js +114 -36
- package/dist/channels/bitbucket/api.d.ts +176 -0
- package/dist/channels/bitbucket/api.d.ts.map +1 -0
- package/dist/channels/bitbucket/api.js +419 -0
- package/dist/channels/bitbucket/binding.d.ts +71 -0
- package/dist/channels/bitbucket/binding.d.ts.map +1 -0
- package/dist/channels/bitbucket/binding.js +269 -0
- package/dist/channels/bitbucket/bitbucket-channel.d.ts +33 -0
- package/dist/channels/bitbucket/bitbucket-channel.d.ts.map +1 -0
- package/dist/channels/bitbucket/bitbucket-channel.js +120 -0
- package/dist/channels/bitbucket/bitbucket-webhook.d.ts +61 -0
- package/dist/channels/bitbucket/bitbucket-webhook.d.ts.map +1 -0
- package/dist/channels/bitbucket/bitbucket-webhook.js +394 -0
- package/dist/channels/bitbucket/checks.d.ts +67 -0
- package/dist/channels/bitbucket/checks.d.ts.map +1 -0
- package/dist/channels/bitbucket/checks.js +102 -0
- package/dist/channels/bitbucket/cursor-account.d.ts +37 -0
- package/dist/channels/bitbucket/cursor-account.d.ts.map +1 -0
- package/dist/channels/bitbucket/cursor-account.js +65 -0
- package/dist/channels/bitbucket/defaults.d.ts +26 -0
- package/dist/channels/bitbucket/defaults.d.ts.map +1 -0
- package/dist/channels/bitbucket/defaults.js +73 -0
- package/dist/channels/bitbucket/events.d.ts +22 -0
- package/dist/channels/bitbucket/events.d.ts.map +1 -0
- package/dist/channels/bitbucket/events.js +64 -0
- package/dist/channels/bitbucket/index.d.ts +34 -0
- package/dist/channels/bitbucket/index.d.ts.map +1 -0
- package/dist/channels/bitbucket/index.js +33 -0
- package/dist/channels/bitbucket/replay.d.ts +63 -0
- package/dist/channels/bitbucket/replay.d.ts.map +1 -0
- package/dist/channels/bitbucket/replay.js +304 -0
- package/dist/channels/bitbucket/state.d.ts +35 -0
- package/dist/channels/bitbucket/state.d.ts.map +1 -0
- package/dist/channels/bitbucket/state.js +21 -0
- package/dist/channels/bitbucket/types.d.ts +229 -0
- package/dist/channels/bitbucket/types.d.ts.map +1 -0
- package/dist/channels/bitbucket/types.js +1 -0
- package/dist/channels/change-monitors/change-monitors-channel.d.ts +5 -0
- package/dist/channels/change-monitors/change-monitors-channel.d.ts.map +1 -0
- package/dist/channels/change-monitors/change-monitors-channel.js +41 -0
- package/dist/channels/change-monitors/index.d.ts +4 -0
- package/dist/channels/change-monitors/index.d.ts.map +1 -0
- package/dist/channels/change-monitors/index.js +2 -0
- package/dist/channels/change-monitors/types.d.ts +39 -0
- package/dist/channels/change-monitors/types.d.ts.map +1 -0
- package/dist/channels/change-monitors/types.js +1 -0
- package/dist/channels/deployments/deployments-channel.d.ts +22 -14
- package/dist/channels/deployments/deployments-channel.d.ts.map +1 -1
- package/dist/channels/deployments/deployments-channel.js +25 -27
- package/dist/channels/deployments/types.d.ts +12 -6
- package/dist/channels/deployments/types.d.ts.map +1 -1
- package/dist/channels/github/binding.d.ts +6 -0
- package/dist/channels/github/binding.d.ts.map +1 -1
- package/dist/channels/github/binding.js +3 -3
- package/dist/channels/github/cursor-account.d.ts +7 -3
- package/dist/channels/github/cursor-account.d.ts.map +1 -1
- package/dist/channels/github/cursor-account.js +10 -6
- package/dist/channels/github/defaults.d.ts.map +1 -1
- package/dist/channels/github/defaults.js +4 -0
- package/dist/channels/github/events.d.ts +1 -1
- package/dist/channels/github/events.js +1 -1
- package/dist/channels/github/forward.d.ts +1 -1
- package/dist/channels/github/forward.d.ts.map +1 -1
- package/dist/channels/github/forward.js +3 -2
- package/dist/channels/github/github-channel.d.ts +29 -39
- package/dist/channels/github/github-channel.d.ts.map +1 -1
- package/dist/channels/github/github-channel.js +68 -101
- package/dist/channels/github/progress.d.ts +22 -0
- package/dist/channels/github/progress.d.ts.map +1 -1
- package/dist/channels/github/progress.js +32 -5
- package/dist/channels/github/replay.d.ts +1 -1
- package/dist/channels/github/replay.js +1 -1
- package/dist/channels/github/state.d.ts +2 -0
- package/dist/channels/github/state.d.ts.map +1 -1
- package/dist/channels/github/state.js +14 -11
- package/dist/channels/github/types.d.ts +2 -4
- package/dist/channels/github/types.d.ts.map +1 -1
- package/dist/channels/gitlab/api.d.ts +91 -0
- package/dist/channels/gitlab/api.d.ts.map +1 -0
- package/dist/channels/gitlab/api.js +150 -0
- package/dist/channels/gitlab/binding.d.ts +58 -0
- package/dist/channels/gitlab/binding.d.ts.map +1 -0
- package/dist/channels/gitlab/binding.js +139 -0
- package/dist/channels/gitlab/checks.d.ts +110 -0
- package/dist/channels/gitlab/checks.d.ts.map +1 -0
- package/dist/channels/gitlab/checks.js +126 -0
- package/dist/channels/gitlab/cursor-account.d.ts +36 -0
- package/dist/channels/gitlab/cursor-account.d.ts.map +1 -0
- package/dist/channels/gitlab/cursor-account.js +65 -0
- package/dist/channels/gitlab/defaults.d.ts +25 -0
- package/dist/channels/gitlab/defaults.d.ts.map +1 -0
- package/dist/channels/gitlab/defaults.js +60 -0
- package/dist/channels/gitlab/events.d.ts +12 -0
- package/dist/channels/gitlab/events.d.ts.map +1 -0
- package/dist/channels/gitlab/events.js +28 -0
- package/dist/channels/gitlab/gitlab-channel.d.ts +33 -0
- package/dist/channels/gitlab/gitlab-channel.d.ts.map +1 -0
- package/dist/channels/gitlab/gitlab-channel.js +120 -0
- package/dist/channels/gitlab/gitlab-webhook.d.ts +45 -0
- package/dist/channels/gitlab/gitlab-webhook.d.ts.map +1 -0
- package/dist/channels/gitlab/gitlab-webhook.js +397 -0
- package/dist/channels/gitlab/index.d.ts +31 -0
- package/dist/channels/gitlab/index.d.ts.map +1 -0
- package/dist/channels/gitlab/index.js +30 -0
- package/dist/channels/gitlab/replay.d.ts +105 -0
- package/dist/channels/gitlab/replay.d.ts.map +1 -0
- package/dist/channels/gitlab/replay.js +206 -0
- package/dist/channels/gitlab/state.d.ts +33 -0
- package/dist/channels/gitlab/state.d.ts.map +1 -0
- package/dist/channels/gitlab/state.js +23 -0
- package/dist/channels/gitlab/types.d.ts +214 -0
- package/dist/channels/gitlab/types.d.ts.map +1 -0
- package/dist/channels/gitlab/types.js +1 -0
- package/dist/channels/issues/index.d.ts +4 -0
- package/dist/channels/issues/index.d.ts.map +1 -0
- package/dist/channels/issues/index.js +2 -0
- package/dist/channels/issues/issues-channel.d.ts +5 -0
- package/dist/channels/issues/issues-channel.d.ts.map +1 -0
- package/dist/channels/issues/issues-channel.js +37 -0
- package/dist/channels/issues/types.d.ts +33 -0
- package/dist/channels/issues/types.d.ts.map +1 -0
- package/dist/channels/issues/types.js +1 -0
- package/dist/channels/origin/api.d.ts.map +1 -1
- package/dist/channels/origin/api.js +4 -2
- package/dist/channels/origin/origin-channel.d.ts +4 -9
- package/dist/channels/origin/origin-channel.d.ts.map +1 -1
- package/dist/channels/origin/origin-channel.js +8 -48
- package/dist/channels/origin/types.d.ts +20 -2
- package/dist/channels/origin/types.d.ts.map +1 -1
- package/dist/channels/slack/eval-directive.d.ts.map +1 -1
- package/dist/channels/slack/eval-directive.js +1 -7
- package/dist/channels/slack/init.d.ts.map +1 -1
- package/dist/channels/slack/init.js +3 -3
- package/dist/channels/slack/setup.d.ts +1 -1
- package/dist/channels/slack/setup.d.ts.map +1 -1
- package/dist/channels/slack/setup.js +6 -13
- package/dist/channels/slack/types.d.ts +1 -1
- package/dist/channels/slack/types.d.ts.map +1 -1
- package/dist/channels.d.ts +1 -1
- package/dist/channels.d.ts.map +1 -1
- package/dist/client.d.ts +1 -1
- package/dist/client.js +1 -1
- package/dist/connections.d.ts +1 -1
- package/dist/connections.js +1 -1
- package/dist/docs/404.html +2 -2
- package/dist/docs/ab.html +4 -4
- package/dist/docs/assets/{app.CLA03RCz.js → app.DbMWUyGb.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.Bqsulb9K.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.ifxv-cJV.js → VPLocalSearchBox.DcNeTh9o.js} +1 -1
- package/dist/docs/assets/chunks/{theme.DWCwM6p-.js → theme.DMjhY3gl.js} +2 -2
- package/dist/docs/assets/concepts.md.DgEcZOfT.js +1 -0
- package/dist/docs/assets/{concepts.md.rPzW2HZN.lean.js → concepts.md.DgEcZOfT.lean.js} +1 -1
- package/dist/docs/assets/{evals.md.CPzDAwoH.js → evals.md.CbMoebP1.js} +1 -1
- package/dist/docs/assets/guides_cloud-agents.md.DS8RIjwx.js +9 -0
- package/dist/docs/assets/{guides_github.md.BtPr9GaP.js → guides_github.md.c0gdGJ-D.js} +1 -1
- package/dist/docs/assets/{guides_github.md.BtPr9GaP.lean.js → guides_github.md.c0gdGJ-D.lean.js} +1 -1
- package/dist/docs/assets/{guides_opentelemetry.md.BVTXDCRg.js → guides_opentelemetry.md.COh9jFVg.js} +7 -8
- package/dist/docs/assets/{guides_opentelemetry.md.BVTXDCRg.lean.js → guides_opentelemetry.md.COh9jFVg.lean.js} +1 -1
- package/dist/docs/assets/{index.md.Kiht7ell.js → index.md.D75GWhPl.js} +1 -1
- package/dist/docs/assets/{reference_agent-config.md.BHeYMgme.js → reference_agent-config.md.CHNpiyp4.js} +3 -3
- package/dist/docs/assets/{reference_channels.md.Cd2f2iyV.js → reference_channels.md.DBGcaB7m.js} +2 -2
- package/dist/docs/assets/{reference_channels.md.Cd2f2iyV.lean.js → reference_channels.md.DBGcaB7m.lean.js} +1 -1
- package/dist/docs/assets/{reference_cli.md.DfoeyvL0.js → reference_cli.md.CJNc_xYK.js} +1 -1
- package/dist/docs/assets/{reference_extensions.md.9WQMZe1l.js → reference_extensions.md.DykHW3qL.js} +11 -5
- package/dist/docs/assets/reference_extensions.md.DykHW3qL.lean.js +1 -0
- package/dist/docs/assets/reference_hooks.md.Ddt5DdgJ.js +73 -0
- package/dist/docs/assets/{reference_hooks.md.a8BJxMR5.lean.js → reference_hooks.md.Ddt5DdgJ.lean.js} +1 -1
- package/dist/docs/assets/{reference_playground.md.DnX5nL-B.js → reference_playground.md.4myJPxrf.js} +1 -1
- package/dist/docs/assets/{reference_project-layout.md.CA6QP6Lw.js → reference_project-layout.md.DuBu9a96.js} +2 -2
- package/dist/docs/assets/reference_result.md.BK5SxDrf.js +19 -0
- package/dist/docs/assets/reference_result.md.BK5SxDrf.lean.js +1 -0
- package/dist/docs/assets/{reference_sessions.md.NxFP_CAC.js → reference_sessions.md.CueyOHSL.js} +1 -1
- package/dist/docs/assets/{reference_sessions.md.NxFP_CAC.lean.js → reference_sessions.md.CueyOHSL.lean.js} +1 -1
- package/dist/docs/assets/{reference_tools.md.B1up2r9W.js → reference_tools.md.aGrn99hP.js} +1 -1
- package/dist/docs/assets/skills_framework-map.md.haibFyoB.js +1 -0
- package/dist/docs/assets/{skills_otel.md.CgiZryR3.js → skills_otel.md.CqhobH3B.js} +3 -3
- package/dist/docs/assets/{skills_otel.md.CgiZryR3.lean.js → skills_otel.md.CqhobH3B.lean.js} +1 -1
- package/dist/docs/assets/{templates_pr-autofixer.md.x5zl6-GT.js → templates_pr-autofixer.md.Bds_XWcV.js} +2 -2
- package/dist/docs/assets/{templates_pr-autofixer.md.x5zl6-GT.lean.js → templates_pr-autofixer.md.Bds_XWcV.lean.js} +1 -1
- package/dist/docs/building-with-agents.html +4 -4
- package/dist/docs/concepts.html +5 -5
- package/dist/docs/concepts.md +2 -4
- package/dist/docs/deployment.html +4 -4
- package/dist/docs/design/filesystem.md +376 -0
- package/dist/docs/design/runtime-abstraction.md +2 -3
- package/dist/docs/evals.html +6 -6
- package/dist/docs/evals.md +9 -7
- package/dist/docs/guides/agent-to-agent.html +4 -4
- package/dist/docs/guides/cloud-agents.html +6 -6
- package/dist/docs/guides/cloud-agents.md +4 -6
- package/dist/docs/guides/convert-automation.html +4 -4
- package/dist/docs/guides/github.html +6 -6
- package/dist/docs/guides/github.md +5 -1
- package/dist/docs/guides/human-in-the-loop.html +4 -4
- package/dist/docs/guides/mcp-oauth.html +5 -5
- package/dist/docs/guides/opentelemetry.html +10 -11
- package/dist/docs/guides/opentelemetry.md +41 -17
- package/dist/docs/guides/slack.html +4 -4
- 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 +2 -2
- package/dist/docs/llms-full.txt +907 -262
- package/dist/docs/llms.txt +3 -2
- package/dist/docs/quickstart.html +4 -4
- package/dist/docs/reference/agent-config.html +8 -8
- package/dist/docs/reference/agent-config.md +6 -10
- package/dist/docs/reference/artifacts.html +5 -5
- package/dist/docs/reference/channels.html +6 -6
- package/dist/docs/reference/channels.md +38 -8
- package/dist/docs/reference/cli.html +5 -5
- package/dist/docs/reference/cli.md +3 -4
- package/dist/docs/reference/connections.html +4 -4
- package/dist/docs/reference/extensions.html +16 -10
- package/dist/docs/reference/extensions.md +86 -22
- package/dist/docs/reference/hooks.html +69 -10
- package/dist/docs/reference/hooks.md +215 -46
- package/dist/docs/reference/http-api.html +4 -4
- package/dist/docs/reference/instructions.html +4 -4
- package/dist/docs/reference/playground.html +5 -5
- package/dist/docs/reference/playground.md +3 -0
- package/dist/docs/reference/project-layout.html +6 -6
- package/dist/docs/reference/project-layout.md +2 -1
- package/dist/docs/reference/prompt.html +4 -4
- package/dist/docs/reference/result.html +45 -0
- package/dist/docs/reference/result.md +89 -0
- package/dist/docs/reference/schedules.html +4 -4
- package/dist/docs/reference/sessions.html +5 -5
- package/dist/docs/reference/sessions.md +3 -1
- package/dist/docs/reference/skills.html +4 -4
- package/dist/docs/reference/subagents.html +4 -4
- package/dist/docs/reference/tools.html +5 -5
- package/dist/docs/reference/tools.md +1 -2
- package/dist/docs/scaffolding-agents.html +4 -4
- package/dist/docs/skills/ab.html +4 -4
- package/dist/docs/skills/create-agent.html +4 -4
- package/dist/docs/skills/debug.html +4 -4
- package/dist/docs/skills/evals.html +4 -4
- package/dist/docs/skills/framework-map.html +5 -5
- package/dist/docs/skills/framework-map.md +3 -1
- package/dist/docs/skills/github.html +4 -4
- package/dist/docs/skills/hillclimb.html +4 -4
- package/dist/docs/skills/index.html +4 -4
- package/dist/docs/skills/mcp-auth.html +4 -4
- package/dist/docs/skills/otel.html +7 -7
- package/dist/docs/skills/otel.md +8 -3
- package/dist/docs/skills/setup-slack.html +4 -4
- package/dist/docs/storage.html +4 -4
- package/dist/docs/templates/agentic-owners.html +4 -4
- package/dist/docs/templates/agents-md.html +4 -4
- package/dist/docs/templates/code-wiki.html +4 -4
- package/dist/docs/templates/demo.html +4 -4
- package/dist/docs/templates/pr-autofixer.html +6 -6
- package/dist/docs/templates/pr-autofixer.md +0 -3
- package/dist/docs/templates/security-help.html +4 -4
- package/dist/docs/templates/security-reviewer.html +4 -4
- package/dist/docs/templates/triage.html +4 -4
- package/dist/docs/troubleshooting.html +4 -4
- package/dist/evals.d.ts +1 -1
- package/dist/evals.d.ts.map +1 -1
- package/dist/extensions.d.ts +20 -7
- package/dist/extensions.d.ts.map +1 -1
- package/dist/extensions.js +36 -5
- package/dist/files.d.ts +16 -3
- package/dist/files.d.ts.map +1 -1
- package/dist/files.js +16 -3
- package/dist/filesystem.d.ts +440 -0
- package/dist/filesystem.d.ts.map +1 -0
- package/dist/filesystem.js +1694 -0
- package/dist/index.d.ts +6 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/internal/ab-snapshot.d.ts.map +1 -1
- package/dist/internal/ab-snapshot.js +0 -1
- package/dist/internal/advertise-tools.d.ts.map +1 -1
- package/dist/internal/advertise-tools.js +1 -3
- package/dist/internal/authored-alias-hooks.d.ts +4 -13
- package/dist/internal/authored-alias-hooks.d.ts.map +1 -1
- package/dist/internal/authored-alias-hooks.js +4 -20
- package/dist/internal/authored-loaders.d.ts +2 -3
- package/dist/internal/authored-loaders.d.ts.map +1 -1
- package/dist/internal/authored-loaders.js +6 -20
- package/dist/internal/channel-dispatch.d.ts +43 -0
- package/dist/internal/channel-dispatch.d.ts.map +1 -0
- package/dist/internal/channel-dispatch.js +77 -0
- package/dist/internal/chat-client.d.ts +1 -1
- package/dist/internal/chat-client.js +1 -1
- package/dist/internal/cli-ax.d.ts +5 -5
- package/dist/internal/cli-ax.d.ts.map +1 -1
- package/dist/internal/cli-ax.js +5 -5
- package/dist/internal/cli-bitbucket.d.ts +33 -0
- package/dist/internal/cli-bitbucket.d.ts.map +1 -0
- package/dist/internal/cli-bitbucket.js +359 -0
- package/dist/internal/cli-convert-automation.d.ts +1 -1
- package/dist/internal/cli-convert-automation.js +2 -2
- package/dist/internal/cli-cursor.d.ts +1 -1
- package/dist/internal/cli-cursor.d.ts.map +1 -1
- package/dist/internal/cli-cursor.js +2 -4
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +2 -6
- package/dist/internal/cli-github.d.ts +1 -1
- package/dist/internal/cli-github.js +3 -3
- package/dist/internal/cli-gitlab.d.ts +37 -0
- package/dist/internal/cli-gitlab.d.ts.map +1 -0
- package/dist/internal/cli-gitlab.js +380 -0
- package/dist/internal/cli-mcp.d.ts.map +1 -1
- package/dist/internal/cli-mcp.js +2 -6
- package/dist/internal/cli-slack.d.ts +1 -1
- package/dist/internal/cli-slack.d.ts.map +1 -1
- package/dist/internal/cli-slack.js +2 -4
- package/dist/internal/continuation-channel.d.ts +18 -2
- package/dist/internal/continuation-channel.d.ts.map +1 -1
- package/dist/internal/continuation-channel.js +67 -5
- package/dist/internal/continuation-identity.d.ts +24 -17
- package/dist/internal/continuation-identity.d.ts.map +1 -1
- package/dist/internal/continuation-identity.js +246 -32
- package/dist/internal/conversation-mirror.d.ts.map +1 -1
- package/dist/internal/conversation-mirror.js +4 -3
- package/dist/internal/convert-automation/types.d.ts +1 -1
- package/dist/internal/convert-automation/types.js +1 -1
- package/dist/internal/cursor/account-mcp.d.ts.map +1 -1
- package/dist/internal/cursor/account-mcp.js +1 -3
- package/dist/internal/cursor/backend-client.d.ts +5 -4
- package/dist/internal/cursor/backend-client.d.ts.map +1 -1
- package/dist/internal/cursor/backend-client.js +5 -6
- package/dist/internal/cursor/bound-secret-file.d.ts +56 -0
- package/dist/internal/cursor/bound-secret-file.d.ts.map +1 -0
- package/dist/internal/cursor/bound-secret-file.js +88 -0
- package/dist/internal/cursor/credentials.d.ts +39 -5
- package/dist/internal/cursor/credentials.d.ts.map +1 -1
- package/dist/internal/cursor/credentials.js +58 -8
- package/dist/internal/cursor/hosted-bound-secrets.d.ts +41 -0
- package/dist/internal/cursor/hosted-bound-secrets.d.ts.map +1 -0
- package/dist/internal/cursor/hosted-bound-secrets.js +54 -0
- package/dist/internal/cursor/hosted-deployment-secrets.d.ts +19 -5
- package/dist/internal/cursor/hosted-deployment-secrets.d.ts.map +1 -1
- package/dist/internal/cursor/hosted-deployment-secrets.js +29 -9
- package/dist/internal/cursor/hosted-store-secrets.d.ts +1 -1
- package/dist/internal/cursor/hosted-store-secrets.js +1 -1
- package/dist/internal/cursor-account-mcp-auth.d.ts.map +1 -1
- package/dist/internal/cursor-account-mcp-auth.js +2 -4
- package/dist/internal/cursor-deployment-relay.d.ts +6 -2
- package/dist/internal/cursor-deployment-relay.d.ts.map +1 -1
- package/dist/internal/cursor-deployment-relay.js +13 -9
- package/dist/internal/deploy-manifest.d.ts +1 -1
- package/dist/internal/deploy-manifest.d.ts.map +1 -1
- package/dist/internal/deploy-manifest.js +1 -1
- package/dist/internal/discovery/ab.d.ts +1 -1
- package/dist/internal/discovery/ab.d.ts.map +1 -1
- package/dist/internal/discovery/ab.js +21 -9
- package/dist/internal/discovery/agent.d.ts +6 -1
- package/dist/internal/discovery/agent.d.ts.map +1 -1
- package/dist/internal/discovery/agent.js +141 -120
- package/dist/internal/discovery/channels.d.ts +1 -1
- package/dist/internal/discovery/channels.d.ts.map +1 -1
- package/dist/internal/discovery/channels.js +14 -14
- package/dist/internal/discovery/connections.d.ts +1 -5
- package/dist/internal/discovery/connections.d.ts.map +1 -1
- package/dist/internal/discovery/connections.js +30 -44
- package/dist/internal/discovery/cursor-plugin.d.ts.map +1 -1
- package/dist/internal/discovery/cursor-plugin.js +1 -3
- package/dist/internal/discovery/extension-overlay.d.ts +32 -0
- package/dist/internal/discovery/extension-overlay.d.ts.map +1 -0
- package/dist/internal/discovery/extension-overlay.js +191 -0
- package/dist/internal/discovery/extensions.d.ts +11 -2
- package/dist/internal/discovery/extensions.d.ts.map +1 -1
- package/dist/internal/discovery/extensions.js +211 -74
- package/dist/internal/discovery/hooks.d.ts +1 -1
- package/dist/internal/discovery/hooks.d.ts.map +1 -1
- package/dist/internal/discovery/hooks.js +15 -2
- package/dist/internal/discovery/info.d.ts.map +1 -1
- package/dist/internal/discovery/info.js +10 -1
- package/dist/internal/discovery/modules.d.ts.map +1 -1
- package/dist/internal/discovery/modules.js +8 -2
- package/dist/internal/discovery/names.d.ts +1 -1
- package/dist/internal/discovery/names.d.ts.map +1 -1
- package/dist/internal/discovery/names.js +1 -0
- package/dist/internal/discovery/project.d.ts +0 -2
- package/dist/internal/discovery/project.d.ts.map +1 -1
- package/dist/internal/discovery/project.js +64 -10
- package/dist/internal/discovery/runtime.d.ts.map +1 -1
- package/dist/internal/discovery/runtime.js +1 -2
- package/dist/internal/discovery/schedules.d.ts +1 -1
- package/dist/internal/discovery/schedules.d.ts.map +1 -1
- package/dist/internal/discovery/schedules.js +23 -2
- package/dist/internal/discovery/services.d.ts +6 -2
- package/dist/internal/discovery/services.d.ts.map +1 -1
- package/dist/internal/discovery/services.js +31 -1
- package/dist/internal/discovery/skills.d.ts +1 -6
- package/dist/internal/discovery/skills.d.ts.map +1 -1
- package/dist/internal/discovery/skills.js +8 -3
- package/dist/internal/discovery/subagent.d.ts +3 -0
- package/dist/internal/discovery/subagent.d.ts.map +1 -1
- package/dist/internal/discovery/subagent.js +109 -0
- package/dist/internal/discovery.d.ts +1 -2
- package/dist/internal/discovery.d.ts.map +1 -1
- package/dist/internal/discovery.js +1 -2
- package/dist/internal/distribution.d.ts +10 -27
- package/dist/internal/distribution.d.ts.map +1 -1
- package/dist/internal/distribution.js +25 -73
- package/dist/internal/docs-site.js +1 -1
- package/dist/internal/eval-run-store.d.ts +0 -1
- package/dist/internal/eval-run-store.d.ts.map +1 -1
- package/dist/internal/eval-runner.d.ts.map +1 -1
- package/dist/internal/factory-resource-channel.d.ts +33 -0
- package/dist/internal/factory-resource-channel.d.ts.map +1 -0
- package/dist/internal/factory-resource-channel.js +77 -0
- package/dist/internal/filesystem/errors.d.ts +64 -0
- package/dist/internal/filesystem/errors.d.ts.map +1 -0
- package/dist/internal/filesystem/errors.js +175 -0
- package/dist/internal/filesystem/format.d.ts +28 -0
- package/dist/internal/filesystem/format.d.ts.map +1 -0
- package/dist/internal/filesystem/format.js +213 -0
- package/dist/internal/filesystem/merge.d.ts +34 -0
- package/dist/internal/filesystem/merge.d.ts.map +1 -0
- package/dist/internal/filesystem/merge.js +196 -0
- package/dist/internal/filesystem/scratch.d.ts +59 -0
- package/dist/internal/filesystem/scratch.d.ts.map +1 -0
- package/dist/internal/filesystem/scratch.js +212 -0
- package/dist/internal/filesystem/sdk-schemas.d.ts +29 -0
- package/dist/internal/filesystem/sdk-schemas.d.ts.map +1 -0
- package/dist/internal/filesystem/sdk-schemas.js +153 -0
- package/dist/internal/filesystem/tools.d.ts +42 -0
- package/dist/internal/filesystem/tools.d.ts.map +1 -0
- package/dist/internal/filesystem/tools.js +618 -0
- package/dist/internal/filesystem/walk.d.ts +74 -0
- package/dist/internal/filesystem/walk.d.ts.map +1 -0
- package/dist/internal/filesystem/walk.js +339 -0
- package/dist/internal/framework-file-storage.d.ts +8 -0
- package/dist/internal/framework-file-storage.d.ts.map +1 -1
- package/dist/internal/framework-file-storage.js +8 -8
- package/dist/internal/github-fanout.d.ts +1 -1
- package/dist/internal/github-fanout.js +1 -1
- package/dist/internal/guest-network.d.ts +104 -0
- package/dist/internal/guest-network.d.ts.map +1 -0
- package/dist/internal/guest-network.js +309 -0
- package/dist/internal/host-otel.d.ts +3 -3
- package/dist/internal/host-otel.d.ts.map +1 -1
- package/dist/internal/host-otel.js +8 -4
- package/dist/internal/hosted-admission-adapter.d.ts +8 -7
- package/dist/internal/hosted-admission-adapter.d.ts.map +1 -1
- package/dist/internal/hosted-delivery-protocol.d.ts +6 -0
- package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
- package/dist/internal/hosted-delivery-protocol.js +18 -5
- package/dist/internal/hosted-delivery.d.ts +18 -0
- package/dist/internal/hosted-delivery.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.js +258 -118
- package/dist/internal/http-channel.d.ts.map +1 -1
- package/dist/internal/http-channel.js +1 -3
- package/dist/internal/init-interview.d.ts.map +1 -1
- package/dist/internal/init-interview.js +1 -3
- package/dist/internal/init-project.d.ts +2 -2
- package/dist/internal/init-project.js +2 -2
- package/dist/internal/inline-stdio-define-stub.d.ts +1 -1
- package/dist/internal/inline-stdio-define-stub.d.ts.map +1 -1
- package/dist/internal/inline-stdio-define-stub.js +1 -1
- package/dist/internal/is-record.d.ts +2 -0
- package/dist/internal/is-record.d.ts.map +1 -0
- package/dist/internal/is-record.js +3 -0
- package/dist/internal/json-schema.d.ts.map +1 -1
- package/dist/internal/json-schema.js +18 -10
- package/dist/internal/local-control-plane.d.ts +1 -2
- package/dist/internal/local-control-plane.d.ts.map +1 -1
- package/dist/internal/local-control-plane.js +3 -20
- package/dist/internal/mcp-endpoint.d.ts.map +1 -1
- package/dist/internal/mcp-endpoint.js +1 -3
- package/dist/internal/otel/collector.d.ts +12 -3
- package/dist/internal/otel/collector.d.ts.map +1 -1
- package/dist/internal/otel/collector.js +77 -125
- package/dist/internal/otel/config.d.ts +0 -2
- package/dist/internal/otel/config.d.ts.map +1 -1
- package/dist/internal/otel/config.js +17 -20
- package/dist/internal/otel/http.d.ts +2 -0
- package/dist/internal/otel/http.d.ts.map +1 -1
- package/dist/internal/otel/http.js +7 -1
- package/dist/internal/otel/mcp.d.ts.map +1 -1
- package/dist/internal/otel/mcp.js +3 -16
- package/dist/internal/otel/runtime.d.ts +26 -1
- package/dist/internal/otel/runtime.d.ts.map +1 -1
- package/dist/internal/otel/runtime.js +164 -15
- package/dist/internal/package-inline-stdio.d.ts.map +1 -1
- package/dist/internal/package-inline-stdio.js +3 -11
- package/dist/internal/playground/toolchain.d.ts +1 -1
- package/dist/internal/playground/toolchain.d.ts.map +1 -1
- package/dist/internal/playground/toolchain.js +1 -1
- package/dist/internal/request-error-status.d.ts +12 -0
- package/dist/internal/request-error-status.d.ts.map +1 -0
- package/dist/internal/request-error-status.js +52 -0
- package/dist/internal/resolve-prod-target.d.ts +1 -1
- package/dist/internal/resolve-prod-target.d.ts.map +1 -1
- package/dist/internal/resolve-prod-target.js +3 -7
- package/dist/internal/result-output.d.ts +18 -0
- package/dist/internal/result-output.d.ts.map +1 -0
- package/dist/internal/result-output.js +33 -0
- package/dist/internal/run-client.d.ts +2 -2
- package/dist/internal/run-client.js +2 -2
- package/dist/internal/runtime-dispatch-runner.d.ts +1 -11
- package/dist/internal/runtime-dispatch-runner.d.ts.map +1 -1
- package/dist/internal/runtime-dispatch-runner.js +2 -15
- package/dist/internal/sdk-runner.d.ts +1 -1
- package/dist/internal/sdk-runner.d.ts.map +1 -1
- package/dist/internal/sdk-runner.js +6 -7
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +110 -35
- package/dist/internal/session-cost.d.ts +3 -3
- package/dist/internal/session-cost.d.ts.map +1 -1
- package/dist/internal/session-cost.js +3 -3
- package/dist/internal/session-engine.d.ts +48 -11
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +507 -115
- package/dist/internal/session-run-log.d.ts.map +1 -1
- package/dist/internal/session-run-log.js +1 -3
- package/dist/internal/skills-sync.d.ts +1 -4
- package/dist/internal/skills-sync.d.ts.map +1 -1
- package/dist/internal/skills-sync.js +10 -50
- package/dist/internal/sleep.d.ts +2 -0
- package/dist/internal/sleep.d.ts.map +1 -0
- package/dist/internal/sleep.js +3 -0
- package/dist/internal/store-mirror.d.ts +29 -0
- package/dist/internal/store-mirror.d.ts.map +1 -0
- package/dist/internal/store-mirror.js +70 -0
- package/dist/internal/tenant-slack/relay.d.ts +73 -0
- package/dist/internal/tenant-slack/relay.d.ts.map +1 -0
- package/dist/internal/tenant-slack/relay.js +138 -0
- package/dist/internal/testing/factory-resource-fixtures.d.ts +48 -0
- package/dist/internal/testing/factory-resource-fixtures.d.ts.map +1 -0
- package/dist/internal/testing/factory-resource-fixtures.js +41 -0
- package/dist/internal/testing/scm-continuation-fixtures.d.ts +33 -0
- package/dist/internal/testing/scm-continuation-fixtures.d.ts.map +1 -0
- package/dist/internal/testing/scm-continuation-fixtures.js +253 -0
- package/dist/internal/workspace-sync.d.ts +22 -0
- package/dist/internal/workspace-sync.d.ts.map +1 -0
- package/dist/internal/workspace-sync.js +49 -0
- package/dist/internal/workspace.d.ts +7 -0
- package/dist/internal/workspace.d.ts.map +1 -1
- package/dist/internal/workspace.js +13 -0
- package/dist/otel.d.ts +23 -1
- package/dist/otel.d.ts.map +1 -1
- package/dist/otel.js +93 -2
- package/dist/playground/assets/index-8YiozU89.js +67 -0
- package/dist/playground/assets/index-MbMxXg-y.css +1 -0
- package/dist/playground/index.html +2 -2
- package/dist/result.d.ts +24 -0
- package/dist/result.d.ts.map +1 -0
- package/dist/result.js +27 -0
- package/dist/storage-backends/cursor-hosted.d.ts.map +1 -1
- package/dist/storage-backends/cursor-hosted.js +7 -4
- package/dist/storage-protocol.d.ts.map +1 -1
- package/dist/storage-protocol.js +1 -3
- package/dist/types.d.ts +141 -26
- package/dist/types.d.ts.map +1 -1
- package/docs/README.md +2 -2
- package/docs/concepts.md +2 -4
- package/docs/design/filesystem.md +376 -0
- package/docs/design/runtime-abstraction.md +2 -3
- package/docs/evals.md +9 -7
- package/docs/guides/cloud-agents.md +4 -6
- package/docs/guides/github.md +5 -1
- package/docs/guides/opentelemetry.md +41 -17
- package/docs/reference/agent-config.md +6 -10
- package/docs/reference/channels.md +38 -8
- package/docs/reference/cli.md +3 -4
- package/docs/reference/extensions.md +87 -23
- package/docs/reference/hooks.md +215 -46
- package/docs/reference/playground.md +3 -0
- package/docs/reference/project-layout.md +2 -1
- package/docs/reference/result.md +94 -0
- package/docs/reference/sessions.md +3 -1
- package/docs/reference/tools.md +1 -2
- package/docs/templates/pr-autofixer.md +0 -3
- package/package.json +42 -9
- package/skills/framework-map/SKILL.md +3 -1
- package/skills/otel/SKILL.md +8 -3
- package/src/ab.ts +1 -1
- package/src/bin/agent-serve.ts +121 -21
- package/src/channels/bitbucket/api.ts +623 -0
- package/src/channels/bitbucket/binding.ts +414 -0
- package/src/channels/bitbucket/bitbucket-channel.ts +182 -0
- package/src/channels/bitbucket/bitbucket-webhook.ts +576 -0
- package/src/channels/bitbucket/checks.ts +154 -0
- package/src/channels/bitbucket/cursor-account.ts +117 -0
- package/src/channels/bitbucket/defaults.ts +110 -0
- package/src/channels/bitbucket/events.ts +84 -0
- package/src/channels/bitbucket/index.ts +49 -0
- package/src/channels/bitbucket/replay.ts +439 -0
- package/src/channels/bitbucket/state.ts +59 -0
- package/src/channels/bitbucket/types.ts +266 -0
- package/src/channels/change-monitors/change-monitors-channel.ts +62 -0
- package/src/channels/change-monitors/index.ts +8 -0
- package/src/channels/change-monitors/types.ts +44 -0
- package/src/channels/deployments/deployments-channel.ts +25 -43
- package/src/channels/deployments/types.ts +12 -6
- package/src/channels/github/binding.ts +8 -1
- package/src/channels/github/cursor-account.ts +17 -6
- package/src/channels/github/defaults.ts +4 -0
- package/src/channels/github/events.ts +1 -1
- package/src/channels/github/forward.ts +3 -2
- package/src/channels/github/github-channel.ts +74 -221
- package/src/channels/github/progress.ts +76 -10
- package/src/channels/github/replay.ts +1 -1
- package/src/channels/github/state.ts +6 -0
- package/src/channels/github/types.ts +2 -5
- package/src/channels/gitlab/api.ts +228 -0
- package/src/channels/gitlab/binding.ts +233 -0
- package/src/channels/gitlab/checks.ts +243 -0
- package/src/channels/gitlab/cursor-account.ts +114 -0
- package/src/channels/gitlab/defaults.ts +93 -0
- package/src/channels/gitlab/events.ts +44 -0
- package/src/channels/gitlab/gitlab-channel.ts +176 -0
- package/src/channels/gitlab/gitlab-webhook.ts +555 -0
- package/src/channels/gitlab/index.ts +43 -0
- package/src/channels/gitlab/replay.ts +347 -0
- package/src/channels/gitlab/state.ts +55 -0
- package/src/channels/gitlab/types.ts +263 -0
- package/src/channels/issues/index.ts +9 -0
- package/src/channels/issues/issues-channel.ts +51 -0
- package/src/channels/issues/types.ts +41 -0
- package/src/channels/origin/api.ts +4 -2
- package/src/channels/origin/origin-channel.ts +19 -94
- package/src/channels/origin/types.ts +23 -2
- package/src/channels/slack/eval-directive.ts +1 -6
- package/src/channels/slack/init.ts +6 -3
- package/src/channels/slack/setup.ts +7 -6
- package/src/channels/slack/types.ts +1 -1
- package/src/channels.ts +0 -1
- package/src/client.ts +1 -1
- package/src/connections.ts +1 -1
- package/src/evals.ts +1 -1
- package/src/extensions.ts +47 -5
- package/src/files.ts +21 -3
- package/src/filesystem.ts +2074 -0
- package/src/index.ts +48 -28
- package/src/internal/ab-snapshot.ts +0 -3
- package/src/internal/advertise-tools.ts +1 -4
- package/src/internal/authored-alias-hooks.ts +4 -21
- package/src/internal/authored-loaders.ts +6 -23
- package/src/internal/channel-dispatch.ts +160 -0
- package/src/internal/chat-client.ts +1 -1
- package/src/internal/cli-ax.ts +5 -5
- package/src/internal/cli-bitbucket.ts +477 -0
- package/src/internal/cli-convert-automation.ts +7 -7
- package/src/internal/cli-cursor.ts +2 -5
- package/src/internal/cli-deploy.ts +2 -8
- package/src/internal/cli-github.ts +3 -3
- package/src/internal/cli-gitlab.ts +485 -0
- package/src/internal/cli-mcp.ts +2 -7
- package/src/internal/cli-slack.ts +2 -5
- package/src/internal/continuation-channel.ts +102 -4
- package/src/internal/continuation-identity.ts +338 -35
- package/src/internal/conversation-mirror.ts +4 -3
- package/src/internal/convert-automation/types.ts +1 -1
- package/src/internal/cursor/account-mcp.ts +1 -4
- package/src/internal/cursor/backend-client.ts +9 -10
- package/src/internal/cursor/bound-secret-file.ts +108 -0
- package/src/internal/cursor/credentials.ts +75 -10
- package/src/internal/cursor/hosted-bound-secrets.ts +75 -0
- package/src/internal/cursor/hosted-deployment-secrets.ts +42 -11
- package/src/internal/cursor/hosted-store-secrets.ts +1 -1
- package/src/internal/cursor-account-mcp-auth.ts +2 -5
- package/src/internal/cursor-deployment-relay.ts +11 -7
- package/src/internal/deploy-manifest.ts +4 -2
- package/src/internal/discovery/ab.ts +29 -9
- package/src/internal/discovery/agent.ts +181 -136
- package/src/internal/discovery/channels.ts +15 -13
- package/src/internal/discovery/connections.ts +55 -50
- package/src/internal/discovery/cursor-plugin.ts +1 -4
- package/src/internal/discovery/extension-overlay.ts +274 -0
- package/src/internal/discovery/extensions.ts +330 -105
- package/src/internal/discovery/hooks.ts +20 -2
- package/src/internal/discovery/info.ts +10 -0
- package/src/internal/discovery/modules.ts +8 -2
- package/src/internal/discovery/names.ts +2 -1
- package/src/internal/discovery/project.ts +80 -9
- package/src/internal/discovery/runtime.ts +1 -2
- package/src/internal/discovery/schedules.ts +28 -2
- package/src/internal/discovery/services.ts +37 -1
- package/src/internal/discovery/skills.ts +13 -3
- package/src/internal/discovery/subagent.ts +107 -0
- package/src/internal/discovery.ts +0 -2
- package/src/internal/distribution.ts +35 -83
- package/src/internal/docs-site.ts +1 -1
- package/src/internal/eval-run-store.ts +0 -7
- package/src/internal/eval-runner.ts +0 -1
- package/src/internal/factory-resource-channel.ts +122 -0
- package/src/internal/filesystem/errors.ts +220 -0
- package/src/internal/filesystem/format.ts +276 -0
- package/src/internal/filesystem/merge.ts +195 -0
- package/src/internal/filesystem/scratch.ts +255 -0
- package/src/internal/filesystem/sdk-schemas.ts +204 -0
- package/src/internal/filesystem/tools.ts +821 -0
- package/src/internal/filesystem/walk.ts +369 -0
- package/src/internal/framework-file-storage.ts +8 -8
- package/src/internal/github-fanout.ts +1 -1
- package/src/internal/guest-network.ts +389 -0
- package/src/internal/host-otel.ts +8 -4
- package/src/internal/hosted-admission-adapter.ts +8 -8
- package/src/internal/hosted-delivery-protocol.ts +26 -1
- package/src/internal/hosted-delivery.ts +393 -192
- package/src/internal/http-channel.ts +1 -4
- package/src/internal/init-interview.ts +1 -4
- package/src/internal/init-project.ts +2 -2
- package/src/internal/inline-stdio-define-stub.ts +1 -1
- package/src/internal/is-record.ts +3 -0
- package/src/internal/json-schema.ts +19 -10
- package/src/internal/local-control-plane.ts +5 -24
- package/src/internal/mcp-endpoint.ts +1 -4
- package/src/internal/otel/collector.ts +94 -159
- package/src/internal/otel/config.ts +10 -14
- package/src/internal/otel/http.ts +14 -1
- package/src/internal/otel/mcp.ts +3 -16
- package/src/internal/otel/runtime.ts +240 -25
- package/src/internal/package-inline-stdio.ts +3 -12
- package/src/internal/playground/toolchain.ts +1 -1
- package/src/internal/request-error-status.ts +72 -0
- package/src/internal/resolve-prod-target.ts +3 -8
- package/src/internal/result-output.ts +34 -0
- package/src/internal/run-client.ts +2 -2
- package/src/internal/runtime-dispatch-runner.ts +3 -21
- package/src/internal/sdk-runner.ts +7 -7
- package/src/internal/server.ts +153 -44
- package/src/internal/session-cost.ts +3 -3
- package/src/internal/session-engine.ts +621 -103
- package/src/internal/session-run-log.ts +1 -4
- package/src/internal/skills-sync.ts +13 -63
- package/src/internal/sleep.ts +3 -0
- package/src/internal/store-mirror.ts +86 -0
- package/src/internal/tenant-slack/relay.ts +179 -0
- package/src/internal/testing/factory-resource-fixtures.ts +85 -0
- package/src/internal/testing/scm-continuation-fixtures.ts +286 -0
- package/src/internal/workspace-sync.ts +55 -0
- package/src/internal/workspace.ts +14 -0
- package/src/otel.ts +143 -3
- package/src/result.ts +36 -0
- package/src/storage-backends/cursor-hosted.ts +7 -4
- package/src/storage-protocol.ts +1 -4
- package/src/types.ts +154 -37
- package/templates/triage/agent/lib/types.ts +0 -2
- package/dist/continuation.d.ts +0 -20
- package/dist/continuation.d.ts.map +0 -1
- package/dist/continuation.js +0 -18
- package/dist/docs/assets/chunks/@localSearchIndexroot.FAqdWIXo.js +0 -1
- package/dist/docs/assets/concepts.md.rPzW2HZN.js +0 -1
- package/dist/docs/assets/guides_cloud-agents.md.DumwWXba.js +0 -9
- package/dist/docs/assets/guides_cloud-runtime.md.BRirbRAN.js +0 -9
- package/dist/docs/assets/guides_cloud-runtime.md.BRirbRAN.lean.js +0 -1
- package/dist/docs/assets/reference_extensions.md.9WQMZe1l.lean.js +0 -1
- package/dist/docs/assets/reference_hooks.md.a8BJxMR5.js +0 -14
- package/dist/docs/assets/skills_framework-map.md.DDa4MeEW.js +0 -1
- package/dist/docs/guides/cloud-runtime.html +0 -35
- package/dist/docs/guides/cloud-runtime.md +0 -117
- package/dist/internal/convert-automation/index.d.ts +0 -3
- package/dist/internal/convert-automation/index.d.ts.map +0 -1
- package/dist/internal/convert-automation/index.js +0 -1
- package/dist/internal/grokbot/runner.d.ts +0 -64
- package/dist/internal/grokbot/runner.d.ts.map +0 -1
- package/dist/internal/grokbot/runner.js +0 -282
- package/dist/internal/managed-delivery.d.ts +0 -80
- package/dist/internal/managed-delivery.d.ts.map +0 -1
- package/dist/internal/managed-delivery.js +0 -86
- package/dist/internal/review-comments.d.ts +0 -370
- package/dist/internal/review-comments.d.ts.map +0 -1
- package/dist/internal/review-comments.js +0 -921
- package/dist/internal/shallow-clone.d.ts +0 -176
- package/dist/internal/shallow-clone.d.ts.map +0 -1
- package/dist/internal/shallow-clone.js +0 -419
- package/dist/playground/assets/index-B6C9S9nG.css +0 -1
- package/dist/playground/assets/index-ZqNoT8Ie.js +0 -69
- package/docs/guides/cloud-runtime.md +0 -122
- package/src/continuation.ts +0 -49
- package/src/internal/convert-automation/index.ts +0 -10
- package/src/internal/grokbot/runner.ts +0 -370
- package/src/internal/managed-delivery.ts +0 -125
- package/src/internal/review-comments.ts +0 -1363
- package/src/internal/shallow-clone.ts +0 -609
- /package/dist/docs/assets/{evals.md.CPzDAwoH.lean.js → evals.md.CbMoebP1.lean.js} +0 -0
- /package/dist/docs/assets/{guides_cloud-agents.md.DumwWXba.lean.js → guides_cloud-agents.md.DS8RIjwx.lean.js} +0 -0
- /package/dist/docs/assets/{index.md.Kiht7ell.lean.js → index.md.D75GWhPl.lean.js} +0 -0
- /package/dist/docs/assets/{reference_agent-config.md.BHeYMgme.lean.js → reference_agent-config.md.CHNpiyp4.lean.js} +0 -0
- /package/dist/docs/assets/{reference_cli.md.DfoeyvL0.lean.js → reference_cli.md.CJNc_xYK.lean.js} +0 -0
- /package/dist/docs/assets/{reference_playground.md.DnX5nL-B.lean.js → reference_playground.md.4myJPxrf.lean.js} +0 -0
- /package/dist/docs/assets/{reference_project-layout.md.CA6QP6Lw.lean.js → reference_project-layout.md.DuBu9a96.lean.js} +0 -0
- /package/dist/docs/assets/{reference_tools.md.B1up2r9W.lean.js → reference_tools.md.aGrn99hP.lean.js} +0 -0
- /package/dist/docs/assets/{skills_framework-map.md.DDa4MeEW.lean.js → skills_framework-map.md.haibFyoB.lean.js} +0 -0
|
@@ -3,14 +3,16 @@
|
|
|
3
3
|
* on a channel constructor stays `/v1` (engine pack minting) so existing
|
|
4
4
|
* agents do not change: `githubChannel()` → `github.pr/v1`, `slackChannel()`
|
|
5
5
|
* → `slack.thread/v1`, `originChannel()` → `origin.pr/v1`,
|
|
6
|
-
* `deploymentsChannel()` → `deployments.none/v1`, `
|
|
6
|
+
* `deploymentsChannel()` → `deployments.none/v1`, `changeMonitorsChannel()`
|
|
7
|
+
* → `none/v1`, `issuesChannel()` → `none/v1`, `httpChannel()` →
|
|
7
8
|
* `none/v1`.
|
|
8
9
|
*
|
|
9
10
|
* Opt the whole agent into the v2 control plane with
|
|
10
11
|
* `defineAgent({ architecture: "v2" })`. That stamps `/v2` defaults from
|
|
11
12
|
* the channel kind and declared events (`github.pr/v2`, `github.issue/v2`,
|
|
12
13
|
* `github.none/v2`, `slack.thread/v2`, `origin.pr/v2`,
|
|
13
|
-
* `deployments.deployment/v2`,
|
|
14
|
+
* `deployments.deployment/v2`, `change_monitors.checkpoint/v2`,
|
|
15
|
+
* `issues.issue/v2`, …) onto every channel that omitted a
|
|
14
16
|
* selector. An explicit per-channel selector still overrides. JSONPath
|
|
15
17
|
* and per-agent format strings are rejected.
|
|
16
18
|
*/
|
|
@@ -22,7 +24,22 @@ export type ConversationType =
|
|
|
22
24
|
| "issue"
|
|
23
25
|
| "thread"
|
|
24
26
|
| "origin-pr"
|
|
25
|
-
| "
|
|
27
|
+
| "gitlab-mr"
|
|
28
|
+
| "bitbucket-pr"
|
|
29
|
+
| "deployment"
|
|
30
|
+
| "change-monitor-checkpoint"
|
|
31
|
+
| "factory-issue";
|
|
32
|
+
|
|
33
|
+
export type ContinuationKind =
|
|
34
|
+
| "github"
|
|
35
|
+
| "slack"
|
|
36
|
+
| "origin"
|
|
37
|
+
| "gitlab"
|
|
38
|
+
| "bitbucket"
|
|
39
|
+
| "deployments"
|
|
40
|
+
| "change_monitors"
|
|
41
|
+
| "issues"
|
|
42
|
+
| "http";
|
|
26
43
|
|
|
27
44
|
export const CONTINUATION_SELECTORS = [
|
|
28
45
|
"github.pr/v1",
|
|
@@ -36,9 +53,15 @@ export const CONTINUATION_SELECTORS = [
|
|
|
36
53
|
"origin.pr/v1",
|
|
37
54
|
"origin.pr/v2",
|
|
38
55
|
"origin.none/v2",
|
|
56
|
+
"gitlab.mr/v2",
|
|
57
|
+
"gitlab.none/v2",
|
|
58
|
+
"bitbucket.pr/v2",
|
|
59
|
+
"bitbucket.none/v2",
|
|
39
60
|
"deployments.none/v1",
|
|
40
61
|
"deployments.none/v2",
|
|
41
62
|
"deployments.deployment/v2",
|
|
63
|
+
"change_monitors.checkpoint/v2",
|
|
64
|
+
"issues.issue/v2",
|
|
42
65
|
"none/v1",
|
|
43
66
|
"none/v2",
|
|
44
67
|
] as const;
|
|
@@ -52,7 +75,7 @@ export type ParsedContinuation = {
|
|
|
52
75
|
selector: ContinuationSelector;
|
|
53
76
|
version: 1 | 2;
|
|
54
77
|
type: ConversationType | "none";
|
|
55
|
-
kind:
|
|
78
|
+
kind: ContinuationKind;
|
|
56
79
|
};
|
|
57
80
|
|
|
58
81
|
export type ContinuationClaim = {
|
|
@@ -61,7 +84,9 @@ export type ContinuationClaim = {
|
|
|
61
84
|
| { owner: string; repo: string; number: number }
|
|
62
85
|
| { channelId: string; threadTs: string }
|
|
63
86
|
| { fullName: string; number: number }
|
|
64
|
-
| { deploymentId: string }
|
|
87
|
+
| { deploymentId: string }
|
|
88
|
+
| { checkpointName: string }
|
|
89
|
+
| { issueName: string };
|
|
65
90
|
};
|
|
66
91
|
|
|
67
92
|
export type MailboxContinuation = {
|
|
@@ -70,7 +95,7 @@ export type MailboxContinuation = {
|
|
|
70
95
|
|
|
71
96
|
export type ContinuationBuiltin = {
|
|
72
97
|
type: ConversationType;
|
|
73
|
-
kind:
|
|
98
|
+
kind: Exclude<ContinuationKind, "http">;
|
|
74
99
|
events: readonly string[];
|
|
75
100
|
format: string;
|
|
76
101
|
};
|
|
@@ -104,6 +129,9 @@ export const BUILTINS: readonly ContinuationBuiltin[] = [
|
|
|
104
129
|
{
|
|
105
130
|
type: "origin-pr",
|
|
106
131
|
kind: "origin",
|
|
132
|
+
// Public webhook deliveries carry `pullRequest.number` + repository
|
|
133
|
+
// (`owner.slug` / `name`); keep in lockstep with the control plane's
|
|
134
|
+
// `conversation/origin.ts`.
|
|
107
135
|
events: [
|
|
108
136
|
"pull_request.created",
|
|
109
137
|
"pull_request.published",
|
|
@@ -113,9 +141,34 @@ export const BUILTINS: readonly ContinuationBuiltin[] = [
|
|
|
113
141
|
"pull_request.merged",
|
|
114
142
|
"pull_request.comment.created",
|
|
115
143
|
"pull_request.review.submitted",
|
|
144
|
+
"pull_request.metadata.updated",
|
|
116
145
|
],
|
|
117
146
|
format: "origin-pr:{fullName}#{number}",
|
|
118
147
|
},
|
|
148
|
+
{
|
|
149
|
+
type: "gitlab-mr",
|
|
150
|
+
kind: "gitlab",
|
|
151
|
+
// GitLab `object_kind`s that carry a merge request: `note` only when
|
|
152
|
+
// `noteable_type` is MergeRequest, `pipeline` only with `merge_request`.
|
|
153
|
+
events: ["merge_request", "note", "pipeline"],
|
|
154
|
+
format: "gitlab-mr:{fullName}!{number}",
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
type: "bitbucket-pr",
|
|
158
|
+
kind: "bitbucket",
|
|
159
|
+
// Cloud vocabulary; Data Center keys are normalized before the stamp.
|
|
160
|
+
events: [
|
|
161
|
+
"pullrequest:created",
|
|
162
|
+
"pullrequest:updated",
|
|
163
|
+
"pullrequest:approved",
|
|
164
|
+
"pullrequest:unapproved",
|
|
165
|
+
"pullrequest:changes_request_created",
|
|
166
|
+
"pullrequest:fulfilled",
|
|
167
|
+
"pullrequest:rejected",
|
|
168
|
+
"pullrequest:comment_created",
|
|
169
|
+
],
|
|
170
|
+
format: "bitbucket-pr:{fullName}#{number}",
|
|
171
|
+
},
|
|
119
172
|
{
|
|
120
173
|
type: "deployment",
|
|
121
174
|
kind: "deployments",
|
|
@@ -124,6 +177,18 @@ export const BUILTINS: readonly ContinuationBuiltin[] = [
|
|
|
124
177
|
events: ["deployment.created", "deployment.succeeded", "deployment.failed"],
|
|
125
178
|
format: "deployments:{deploymentId}",
|
|
126
179
|
},
|
|
180
|
+
{
|
|
181
|
+
type: "change-monitor-checkpoint",
|
|
182
|
+
kind: "change_monitors",
|
|
183
|
+
events: ["checkpoint.created"],
|
|
184
|
+
format: "change_monitors:{checkpointName}",
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
type: "factory-issue",
|
|
188
|
+
kind: "issues",
|
|
189
|
+
events: ["issue.created"],
|
|
190
|
+
format: "issues:{issueName}",
|
|
191
|
+
},
|
|
127
192
|
] as const;
|
|
128
193
|
|
|
129
194
|
export class V2EngineError extends Error {
|
|
@@ -147,6 +212,10 @@ const SELECTOR_FIELDS: {
|
|
|
147
212
|
"origin.pr/v1": { version: 1, type: "origin-pr", kind: "origin" },
|
|
148
213
|
"origin.pr/v2": { version: 2, type: "origin-pr", kind: "origin" },
|
|
149
214
|
"origin.none/v2": { version: 2, type: "none", kind: "origin" },
|
|
215
|
+
"gitlab.mr/v2": { version: 2, type: "gitlab-mr", kind: "gitlab" },
|
|
216
|
+
"gitlab.none/v2": { version: 2, type: "none", kind: "gitlab" },
|
|
217
|
+
"bitbucket.pr/v2": { version: 2, type: "bitbucket-pr", kind: "bitbucket" },
|
|
218
|
+
"bitbucket.none/v2": { version: 2, type: "none", kind: "bitbucket" },
|
|
150
219
|
"deployments.none/v1": { version: 1, type: "none", kind: "deployments" },
|
|
151
220
|
"deployments.none/v2": { version: 2, type: "none", kind: "deployments" },
|
|
152
221
|
"deployments.deployment/v2": {
|
|
@@ -154,13 +223,21 @@ const SELECTOR_FIELDS: {
|
|
|
154
223
|
type: "deployment",
|
|
155
224
|
kind: "deployments",
|
|
156
225
|
},
|
|
226
|
+
"change_monitors.checkpoint/v2": {
|
|
227
|
+
version: 2,
|
|
228
|
+
type: "change-monitor-checkpoint",
|
|
229
|
+
kind: "change_monitors",
|
|
230
|
+
},
|
|
231
|
+
"issues.issue/v2": {
|
|
232
|
+
version: 2,
|
|
233
|
+
type: "factory-issue",
|
|
234
|
+
kind: "issues",
|
|
235
|
+
},
|
|
157
236
|
"none/v1": { version: 1, type: "none", kind: "http" },
|
|
158
237
|
"none/v2": { version: 2, type: "none", kind: "http" },
|
|
159
238
|
};
|
|
160
239
|
|
|
161
|
-
|
|
162
|
-
value: string
|
|
163
|
-
): value is ContinuationSelector {
|
|
240
|
+
function isContinuationSelector(value: string): value is ContinuationSelector {
|
|
164
241
|
return Object.hasOwn(SELECTOR_FIELDS, value);
|
|
165
242
|
}
|
|
166
243
|
|
|
@@ -189,14 +266,66 @@ export function defaultContinuationSelector(
|
|
|
189
266
|
case "slack":
|
|
190
267
|
return "slack.thread/v2";
|
|
191
268
|
case "origin":
|
|
192
|
-
return
|
|
269
|
+
return membershipOrNone(
|
|
270
|
+
eventTypes,
|
|
271
|
+
"origin-pr",
|
|
272
|
+
"origin.pr/v2",
|
|
273
|
+
"origin.none/v2"
|
|
274
|
+
);
|
|
275
|
+
case "gitlab":
|
|
276
|
+
return membershipOrNone(
|
|
277
|
+
eventTypes,
|
|
278
|
+
"gitlab-mr",
|
|
279
|
+
"gitlab.mr/v2",
|
|
280
|
+
"gitlab.none/v2"
|
|
281
|
+
);
|
|
282
|
+
case "bitbucket":
|
|
283
|
+
return membershipOrNone(
|
|
284
|
+
eventTypes,
|
|
285
|
+
"bitbucket-pr",
|
|
286
|
+
"bitbucket.pr/v2",
|
|
287
|
+
"bitbucket.none/v2"
|
|
288
|
+
);
|
|
193
289
|
case "deployments":
|
|
194
|
-
return
|
|
290
|
+
return membershipOrNone(
|
|
291
|
+
eventTypes,
|
|
292
|
+
"deployment",
|
|
293
|
+
"deployments.deployment/v2",
|
|
294
|
+
"deployments.none/v2"
|
|
295
|
+
);
|
|
296
|
+
case "change_monitors":
|
|
297
|
+
return membershipOrNone(
|
|
298
|
+
eventTypes,
|
|
299
|
+
"change-monitor-checkpoint",
|
|
300
|
+
"change_monitors.checkpoint/v2",
|
|
301
|
+
"none/v2"
|
|
302
|
+
);
|
|
303
|
+
case "issues":
|
|
304
|
+
return membershipOrNone(
|
|
305
|
+
eventTypes,
|
|
306
|
+
"factory-issue",
|
|
307
|
+
"issues.issue/v2",
|
|
308
|
+
"none/v2"
|
|
309
|
+
);
|
|
195
310
|
default:
|
|
196
311
|
return "none/v2";
|
|
197
312
|
}
|
|
198
313
|
}
|
|
199
314
|
|
|
315
|
+
/** Typed selector when every declared event is in the type's membership. */
|
|
316
|
+
function membershipOrNone(
|
|
317
|
+
eventTypes: readonly string[] | undefined,
|
|
318
|
+
type: ConversationType,
|
|
319
|
+
typed: ContinuationSelector,
|
|
320
|
+
none: ContinuationSelector
|
|
321
|
+
): ContinuationSelector {
|
|
322
|
+
const allowed = new Set(builtinForType(type)?.events ?? []);
|
|
323
|
+
if ((eventTypes ?? []).some((event) => !allowed.has(event))) {
|
|
324
|
+
return none;
|
|
325
|
+
}
|
|
326
|
+
return typed;
|
|
327
|
+
}
|
|
328
|
+
|
|
200
329
|
function githubV2Default(eventTypes?: readonly string[]): ContinuationSelector {
|
|
201
330
|
const events = eventTypes ?? [];
|
|
202
331
|
const issueEvents = new Set(builtinForType("issue")?.events ?? []);
|
|
@@ -210,24 +339,50 @@ function githubV2Default(eventTypes?: readonly string[]): ContinuationSelector {
|
|
|
210
339
|
return "github.pr/v2";
|
|
211
340
|
}
|
|
212
341
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
342
|
+
const OMITTED_V2_TYPED_TYPE = {
|
|
343
|
+
github: "pr",
|
|
344
|
+
origin: "origin-pr",
|
|
345
|
+
deployments: "deployment",
|
|
346
|
+
change_monitors: "change-monitor-checkpoint",
|
|
347
|
+
issues: "factory-issue",
|
|
348
|
+
} as const satisfies Partial<Record<string, ConversationType>>;
|
|
349
|
+
|
|
350
|
+
/** Typed membership used when an omitted `/v2` selector becomes type `none`. */
|
|
351
|
+
export function omittedV2TypedType(kind: string): ConversationType | undefined {
|
|
352
|
+
return OMITTED_V2_TYPED_TYPE[kind as keyof typeof OMITTED_V2_TYPED_TYPE];
|
|
220
353
|
}
|
|
221
354
|
|
|
222
|
-
|
|
355
|
+
/**
|
|
356
|
+
* Omitted `/v2` default became type `none` because a declared event sits
|
|
357
|
+
* outside the kind's typed membership. Validate warns; handshake stays
|
|
358
|
+
* silent on omitted selectors (type `none` is always admitted).
|
|
359
|
+
*/
|
|
360
|
+
export function omittedV2MembershipDowngrade(
|
|
361
|
+
kind: string,
|
|
223
362
|
eventTypes?: readonly string[]
|
|
224
|
-
):
|
|
363
|
+
):
|
|
364
|
+
| { selector: ContinuationSelector; unexpected: readonly string[] }
|
|
365
|
+
| undefined {
|
|
225
366
|
const events = eventTypes ?? [];
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
367
|
+
if (events.length === 0) {
|
|
368
|
+
return undefined;
|
|
369
|
+
}
|
|
370
|
+
const selector = defaultContinuationSelector(kind, "v2", events);
|
|
371
|
+
const parsed = parseContinuationSelector(selector);
|
|
372
|
+
if (parsed === undefined || parsed.type !== "none") {
|
|
373
|
+
return undefined;
|
|
374
|
+
}
|
|
375
|
+
const typedType = omittedV2TypedType(kind);
|
|
376
|
+
const typed = typedType === undefined ? undefined : builtinForType(typedType);
|
|
377
|
+
if (typed === undefined) {
|
|
378
|
+
return undefined;
|
|
379
|
+
}
|
|
380
|
+
const allowed = new Set(typed.events);
|
|
381
|
+
const unexpected = events.filter((event) => !allowed.has(event));
|
|
382
|
+
if (unexpected.length === 0) {
|
|
383
|
+
return undefined;
|
|
229
384
|
}
|
|
230
|
-
return
|
|
385
|
+
return { selector, unexpected };
|
|
231
386
|
}
|
|
232
387
|
|
|
233
388
|
export function parseContinuationSelector(
|
|
@@ -239,7 +394,7 @@ export function parseContinuationSelector(
|
|
|
239
394
|
return { selector, ...SELECTOR_FIELDS[selector] };
|
|
240
395
|
}
|
|
241
396
|
|
|
242
|
-
|
|
397
|
+
function resolveContinuation(
|
|
243
398
|
raw?: ContinuationIdentity,
|
|
244
399
|
kind?: string
|
|
245
400
|
): ParsedContinuation {
|
|
@@ -273,17 +428,17 @@ export function isV2DurableContinuationKey(key: string): boolean {
|
|
|
273
428
|
return key.startsWith("cont:") || key.startsWith("evt:");
|
|
274
429
|
}
|
|
275
430
|
|
|
276
|
-
|
|
431
|
+
function newEvtKey(): string {
|
|
277
432
|
return `evt:${randomBytes(16).toString("hex")}`;
|
|
278
433
|
}
|
|
279
434
|
|
|
280
|
-
|
|
435
|
+
function builtinForType(
|
|
281
436
|
type: ConversationType
|
|
282
437
|
): ContinuationBuiltin | undefined {
|
|
283
438
|
return BUILTINS.find((builtin) => builtin.type === type);
|
|
284
439
|
}
|
|
285
440
|
|
|
286
|
-
|
|
441
|
+
function formatConversationKey(
|
|
287
442
|
type: ConversationType,
|
|
288
443
|
fields: {
|
|
289
444
|
fullName?: string;
|
|
@@ -291,6 +446,8 @@ export function formatConversationKey(
|
|
|
291
446
|
channelId?: string;
|
|
292
447
|
threadTs?: string;
|
|
293
448
|
deploymentId?: string;
|
|
449
|
+
checkpointName?: string;
|
|
450
|
+
issueName?: string;
|
|
294
451
|
}
|
|
295
452
|
): string {
|
|
296
453
|
switch (type) {
|
|
@@ -300,10 +457,18 @@ export function formatConversationKey(
|
|
|
300
457
|
return `github-issue:${fields.fullName}#${fields.number}`;
|
|
301
458
|
case "origin-pr":
|
|
302
459
|
return `origin-pr:${fields.fullName}#${fields.number}`;
|
|
460
|
+
case "gitlab-mr":
|
|
461
|
+
return `gitlab-mr:${fields.fullName}!${fields.number}`;
|
|
462
|
+
case "bitbucket-pr":
|
|
463
|
+
return `bitbucket-pr:${fields.fullName}#${fields.number}`;
|
|
303
464
|
case "thread":
|
|
304
465
|
return `${fields.channelId}:${fields.threadTs}`;
|
|
305
466
|
case "deployment":
|
|
306
467
|
return `deployments:${fields.deploymentId}`;
|
|
468
|
+
case "change-monitor-checkpoint":
|
|
469
|
+
return `change_monitors:${fields.checkpointName}`;
|
|
470
|
+
case "factory-issue":
|
|
471
|
+
return `issues:${fields.issueName}`;
|
|
307
472
|
}
|
|
308
473
|
}
|
|
309
474
|
|
|
@@ -325,9 +490,27 @@ export function mintClaim(claim: ContinuationClaim): string {
|
|
|
325
490
|
}
|
|
326
491
|
return `cont:${formatConversationKey("deployment", resource)}`;
|
|
327
492
|
}
|
|
493
|
+
case "change-monitor-checkpoint": {
|
|
494
|
+
const resource = claim.resource;
|
|
495
|
+
if (!("checkpointName" in resource)) {
|
|
496
|
+
throw new V2EngineError(
|
|
497
|
+
"v2: change-monitor-checkpoint claim requires checkpointName"
|
|
498
|
+
);
|
|
499
|
+
}
|
|
500
|
+
return `cont:${formatConversationKey("change-monitor-checkpoint", resource)}`;
|
|
501
|
+
}
|
|
502
|
+
case "factory-issue": {
|
|
503
|
+
const resource = claim.resource;
|
|
504
|
+
if (!("issueName" in resource)) {
|
|
505
|
+
throw new V2EngineError("v2: factory-issue claim requires issueName");
|
|
506
|
+
}
|
|
507
|
+
return `cont:${formatConversationKey("factory-issue", resource)}`;
|
|
508
|
+
}
|
|
328
509
|
case "pr":
|
|
329
510
|
case "issue":
|
|
330
|
-
case "origin-pr":
|
|
511
|
+
case "origin-pr":
|
|
512
|
+
case "gitlab-mr":
|
|
513
|
+
case "bitbucket-pr": {
|
|
331
514
|
const resource = claim.resource;
|
|
332
515
|
const fullName =
|
|
333
516
|
"fullName" in resource
|
|
@@ -341,8 +524,15 @@ export function mintClaim(claim: ContinuationClaim): string {
|
|
|
341
524
|
`v2: ${claim.type} claim requires repository and number`
|
|
342
525
|
);
|
|
343
526
|
}
|
|
527
|
+
// GitLab paths and Bitbucket project keys arrive in API-native casing;
|
|
528
|
+
// the webhook extractors lowercase them, so the claim must too or the
|
|
529
|
+
// two mint different keys for the same MR / PR.
|
|
530
|
+
const caseFolded =
|
|
531
|
+
claim.type === "gitlab-mr" || claim.type === "bitbucket-pr"
|
|
532
|
+
? fullName.toLowerCase()
|
|
533
|
+
: fullName;
|
|
344
534
|
return `cont:${formatConversationKey(claim.type, {
|
|
345
|
-
fullName,
|
|
535
|
+
fullName: caseFolded,
|
|
346
536
|
number,
|
|
347
537
|
})}`;
|
|
348
538
|
}
|
|
@@ -421,8 +611,26 @@ export function extractContinuation(
|
|
|
421
611
|
return extractSlack(payload);
|
|
422
612
|
case "origin-pr":
|
|
423
613
|
return extractOrigin(payload);
|
|
614
|
+
case "gitlab-mr":
|
|
615
|
+
return extractGitlab(eventName, payload);
|
|
616
|
+
case "bitbucket-pr":
|
|
617
|
+
return extractBitbucket(payload);
|
|
424
618
|
case "deployment":
|
|
425
|
-
return
|
|
619
|
+
return extractNamedResource("deployment", "deploymentId", payload);
|
|
620
|
+
case "change-monitor-checkpoint":
|
|
621
|
+
return extractNamedResource(
|
|
622
|
+
"change-monitor-checkpoint",
|
|
623
|
+
"checkpointName",
|
|
624
|
+
payload,
|
|
625
|
+
"checkpoint"
|
|
626
|
+
);
|
|
627
|
+
case "factory-issue":
|
|
628
|
+
return extractNamedResource(
|
|
629
|
+
"factory-issue",
|
|
630
|
+
"issueName",
|
|
631
|
+
payload,
|
|
632
|
+
"issue"
|
|
633
|
+
);
|
|
426
634
|
}
|
|
427
635
|
}
|
|
428
636
|
|
|
@@ -629,13 +837,108 @@ function originExtractRecord(
|
|
|
629
837
|
return record;
|
|
630
838
|
}
|
|
631
839
|
|
|
632
|
-
|
|
840
|
+
/**
|
|
841
|
+
* GitLab merge request identity: `project.path_with_namespace` (nested
|
|
842
|
+
* groups keep their slashes; lowercased like the scope key) plus the MR
|
|
843
|
+
* `iid`. `merge_request` reads `object_attributes.iid`; `note` binds only
|
|
844
|
+
* MR notes (`noteable_type: "MergeRequest"`); `pipeline` binds only when
|
|
845
|
+
* the payload carries a `merge_request`.
|
|
846
|
+
*/
|
|
847
|
+
function extractGitlab(
|
|
848
|
+
eventName: string,
|
|
849
|
+
payload: unknown
|
|
850
|
+
): string | undefined {
|
|
851
|
+
const record = asRecord(payload);
|
|
852
|
+
if (record === undefined) {
|
|
853
|
+
return undefined;
|
|
854
|
+
}
|
|
855
|
+
const fullName = nonEmpty(
|
|
856
|
+
asRecord(record.project)?.path_with_namespace
|
|
857
|
+
)?.toLowerCase();
|
|
858
|
+
if (fullName === undefined) {
|
|
859
|
+
return undefined;
|
|
860
|
+
}
|
|
861
|
+
let number: number | undefined;
|
|
862
|
+
switch (eventName) {
|
|
863
|
+
case "merge_request":
|
|
864
|
+
number = positiveInt(asRecord(record.object_attributes)?.iid);
|
|
865
|
+
break;
|
|
866
|
+
case "note":
|
|
867
|
+
if (
|
|
868
|
+
asRecord(record.object_attributes)?.noteable_type !== "MergeRequest"
|
|
869
|
+
) {
|
|
870
|
+
return undefined;
|
|
871
|
+
}
|
|
872
|
+
number = positiveInt(asRecord(record.merge_request)?.iid);
|
|
873
|
+
break;
|
|
874
|
+
case "pipeline":
|
|
875
|
+
number = positiveInt(asRecord(record.merge_request)?.iid);
|
|
876
|
+
break;
|
|
877
|
+
default:
|
|
878
|
+
return undefined;
|
|
879
|
+
}
|
|
880
|
+
if (number === undefined) {
|
|
881
|
+
return undefined;
|
|
882
|
+
}
|
|
883
|
+
return `cont:${formatConversationKey("gitlab-mr", { fullName, number })}`;
|
|
884
|
+
}
|
|
885
|
+
|
|
886
|
+
/**
|
|
887
|
+
* Bitbucket pull request identity from either dialect. Cloud payloads carry
|
|
888
|
+
* `repository.full_name` + `pullrequest.id`; Data Center payloads carry
|
|
889
|
+
* `pullRequest.id` and the repo under `pullRequest.toRef.repository`
|
|
890
|
+
* (`project.key/slug`). Lowercased so a Cloud/DC pair for one logical PR
|
|
891
|
+
* shares a key.
|
|
892
|
+
*/
|
|
893
|
+
function extractBitbucket(payload: unknown): string | undefined {
|
|
894
|
+
const record = asRecord(payload);
|
|
895
|
+
if (record === undefined) {
|
|
896
|
+
return undefined;
|
|
897
|
+
}
|
|
898
|
+
const pullRequest =
|
|
899
|
+
asRecord(record.pullrequest) ?? asRecord(record.pullRequest);
|
|
900
|
+
const number = positiveInt(pullRequest?.id);
|
|
901
|
+
const fullName = bitbucketFullName(
|
|
902
|
+
asRecord(record.repository) ??
|
|
903
|
+
asRecord(asRecord(pullRequest?.toRef)?.repository)
|
|
904
|
+
);
|
|
905
|
+
if (number === undefined || fullName === undefined) {
|
|
906
|
+
return undefined;
|
|
907
|
+
}
|
|
908
|
+
return `cont:${formatConversationKey("bitbucket-pr", { fullName, number })}`;
|
|
909
|
+
}
|
|
910
|
+
|
|
911
|
+
function bitbucketFullName(
|
|
912
|
+
repository: Record<string, unknown> | undefined
|
|
913
|
+
): string | undefined {
|
|
914
|
+
if (repository === undefined) {
|
|
915
|
+
return undefined;
|
|
916
|
+
}
|
|
917
|
+
const cloud = nonEmpty(repository.full_name);
|
|
918
|
+
if (cloud !== undefined) {
|
|
919
|
+
return cloud.toLowerCase();
|
|
920
|
+
}
|
|
921
|
+
const projectKey = nonEmpty(asRecord(repository.project)?.key);
|
|
922
|
+
const slug = nonEmpty(repository.slug);
|
|
923
|
+
if (projectKey === undefined || slug === undefined) {
|
|
924
|
+
return undefined;
|
|
925
|
+
}
|
|
926
|
+
return `${projectKey}/${slug}`.toLowerCase();
|
|
927
|
+
}
|
|
928
|
+
|
|
929
|
+
function extractNamedResource(
|
|
930
|
+
type: "deployment" | "change-monitor-checkpoint" | "factory-issue",
|
|
931
|
+
field: "deploymentId" | "checkpointName" | "issueName",
|
|
932
|
+
payload: unknown,
|
|
933
|
+
wrapper?: "checkpoint" | "issue"
|
|
934
|
+
): string | undefined {
|
|
633
935
|
const record = asRecord(payload);
|
|
634
|
-
const
|
|
635
|
-
|
|
936
|
+
const source = wrapper === undefined ? record : asRecord(record?.[wrapper]);
|
|
937
|
+
const value = nonEmpty(source?.[wrapper === undefined ? field : "name"]);
|
|
938
|
+
if (value === undefined) {
|
|
636
939
|
return undefined;
|
|
637
940
|
}
|
|
638
|
-
return `cont:${formatConversationKey(
|
|
941
|
+
return `cont:${formatConversationKey(type, { [field]: value })}`;
|
|
639
942
|
}
|
|
640
943
|
|
|
641
944
|
function githubFullName(payload: Record<string, unknown>): string | undefined {
|
|
@@ -395,9 +395,10 @@ export function selectConversationMirror(input: {
|
|
|
395
395
|
sink: cursorHostedFiles({
|
|
396
396
|
resolveStoreSourceId: () =>
|
|
397
397
|
hosting.resolveStoreIds().frameworkStoreSourceId,
|
|
398
|
-
// Full chain (env → key file → stored login): frozen
|
|
399
|
-
// unsigned and
|
|
400
|
-
// is constructed.
|
|
398
|
+
// Full chain (env → key file → stored login), resolved lazily: frozen
|
|
399
|
+
// engines listen unsigned and only gain a credential at task time,
|
|
400
|
+
// after this sink is constructed. Hosted deliveries have consumed the
|
|
401
|
+
// bind file into CURSOR_API_KEY by then, so this resolves from env.
|
|
401
402
|
resolveApiKey: () => resolveApiKeySync()?.apiKey,
|
|
402
403
|
}),
|
|
403
404
|
agentName: input.project.name,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Types for `convertWorkflow` — the pure automation → agentsdk project
|
|
3
|
-
* converter behind `agent-
|
|
3
|
+
* converter behind `agent-sdk convert-automation`.
|
|
4
4
|
*
|
|
5
5
|
* The workflow arrives as generic proto3 JSON (lowerCamelCase field names,
|
|
6
6
|
* enum value names as strings) produced by the backend export endpoint
|
|
@@ -28,6 +28,7 @@ import type {
|
|
|
28
28
|
} from "../../types.js";
|
|
29
29
|
import { isCursorAccountTransport } from "../../types.js";
|
|
30
30
|
import { probeConnectorAuthUrls } from "../cursor-account-mcp-auth.js";
|
|
31
|
+
import { describeError } from "../describe-error.js";
|
|
31
32
|
import { LOG_PREFIX } from "../distribution.js";
|
|
32
33
|
import { handleStatelessMcpRequest } from "../mcp-endpoint.js";
|
|
33
34
|
import { isLoopbackAddress } from "../net.js";
|
|
@@ -560,10 +561,6 @@ function trimTrailingSlash(url: string): string {
|
|
|
560
561
|
return url.endsWith("/") ? url.slice(0, -1) : url;
|
|
561
562
|
}
|
|
562
563
|
|
|
563
|
-
function describeError(error: unknown): string {
|
|
564
|
-
return error instanceof Error ? error.message : String(error);
|
|
565
|
-
}
|
|
566
|
-
|
|
567
564
|
export interface CursorAccountMcpWarningServer {
|
|
568
565
|
serverIdentifier: string;
|
|
569
566
|
status: string;
|
|
@@ -17,6 +17,8 @@
|
|
|
17
17
|
import { randomUUID } from "node:crypto";
|
|
18
18
|
import { z } from "zod";
|
|
19
19
|
import type { McpToolAnnotations } from "../../types.js";
|
|
20
|
+
import { describeError } from "../describe-error.js";
|
|
21
|
+
import { CLI_COMMAND_NAME as CLI } from "../distribution.js";
|
|
20
22
|
import { boundedToolAnnotations } from "../mcp-host.js";
|
|
21
23
|
import {
|
|
22
24
|
CURSOR_SESSION_EXCHANGE_PATH,
|
|
@@ -300,9 +302,10 @@ export interface CursorBackendClientOptions {
|
|
|
300
302
|
backendUrl: string;
|
|
301
303
|
apiKey: string;
|
|
302
304
|
/**
|
|
303
|
-
* Re-
|
|
304
|
-
* unsigned and
|
|
305
|
-
*
|
|
305
|
+
* Re-resolve the key on each authenticated call. Hosted freeze listens
|
|
306
|
+
* unsigned and only gains a credential at task time (hosted deliveries
|
|
307
|
+
* consume the bind file into `CURSOR_API_KEY` before authored work); a
|
|
308
|
+
* constructor-frozen key would miss that bind.
|
|
306
309
|
*/
|
|
307
310
|
getApiKey?: () => string;
|
|
308
311
|
logger?: (line: string) => void;
|
|
@@ -607,7 +610,7 @@ export class CursorBackendClient {
|
|
|
607
610
|
}
|
|
608
611
|
throw new CursorBackendError(
|
|
609
612
|
error.status === 401
|
|
610
|
-
?
|
|
613
|
+
? `The Cursor API key was rejected. Run \`${CLI} login\` again or update CURSOR_API_KEY.`
|
|
611
614
|
: `Cursor API key exchange failed (${error.status}).`,
|
|
612
615
|
error.status
|
|
613
616
|
);
|
|
@@ -623,7 +626,7 @@ export class CursorBackendClient {
|
|
|
623
626
|
|
|
624
627
|
/**
|
|
625
628
|
* Mint a named user API key from a short-lived login session token. Used
|
|
626
|
-
* exactly once per `agent-
|
|
629
|
+
* exactly once per `agent-sdk login`; the session token is then discarded.
|
|
627
630
|
*/
|
|
628
631
|
export async function createUserApiKeyWithSessionToken(args: {
|
|
629
632
|
backendUrl: string;
|
|
@@ -867,7 +870,7 @@ function describeGithubTokenHttpFailure(
|
|
|
867
870
|
if (status === 401) {
|
|
868
871
|
return `The Cursor API key was rejected${
|
|
869
872
|
detail === undefined ? "" : `: ${detail}`
|
|
870
|
-
}. Run
|
|
873
|
+
}. Run \`${CLI} login\` again or update CURSOR_API_KEY.`;
|
|
871
874
|
}
|
|
872
875
|
if (detail !== undefined) {
|
|
873
876
|
return detail;
|
|
@@ -899,10 +902,6 @@ function retryAfterMsFromResponse(response: Response): number | undefined {
|
|
|
899
902
|
return Math.min(retryAfter * 1000, MAX_GITHUB_TOKEN_RETRY_AFTER_MS);
|
|
900
903
|
}
|
|
901
904
|
|
|
902
|
-
function describeError(error: unknown): string {
|
|
903
|
-
return error instanceof Error ? error.message : String(error);
|
|
904
|
-
}
|
|
905
|
-
|
|
906
905
|
/** Release undici/fetch connection slots on responses we will not parse. */
|
|
907
906
|
async function drainResponseBody(response: Response): Promise<void> {
|
|
908
907
|
try {
|