@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
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Durable per-session Bitbucket channel state, persisted with the turn so
|
|
3
|
+
* channel stream-event handlers can rebuild a repo-bound handle without
|
|
4
|
+
* re-parsing the webhook.
|
|
5
|
+
*/
|
|
6
|
+
import type { BitbucketDialect } from "./types.js";
|
|
7
|
+
export interface BitbucketChannelState {
|
|
8
|
+
dialect: BitbucketDialect | null;
|
|
9
|
+
/** `workspace/repo` (Cloud) or `PROJECT/repo` (Data Center), as delivered. */
|
|
10
|
+
repoFullName: string;
|
|
11
|
+
/** Cloud `repository.uuid` (braces included) when known. */
|
|
12
|
+
repoUuid: string | null;
|
|
13
|
+
pullRequestId: number | null;
|
|
14
|
+
/** Source-branch head at dispatch time, when known. */
|
|
15
|
+
headSha: string | null;
|
|
16
|
+
/** Comment id that woke the turn (comment events only). */
|
|
17
|
+
triggeringCommentId: number | null;
|
|
18
|
+
deliveryId: string | null;
|
|
19
|
+
/** Cloud-normalized event key. */
|
|
20
|
+
eventType: string | null;
|
|
21
|
+
}
|
|
22
|
+
export declare function emptyBitbucketChannelState(overrides?: Partial<BitbucketChannelState>): BitbucketChannelState;
|
|
23
|
+
export declare function bitbucketChannelStateForEvent(input: {
|
|
24
|
+
repository: {
|
|
25
|
+
dialect: BitbucketDialect;
|
|
26
|
+
fullName: string;
|
|
27
|
+
uuid?: string;
|
|
28
|
+
};
|
|
29
|
+
pullRequestId?: number;
|
|
30
|
+
headSha?: string;
|
|
31
|
+
deliveryId?: string;
|
|
32
|
+
eventType: string;
|
|
33
|
+
triggeringCommentId?: number;
|
|
34
|
+
}): BitbucketChannelState;
|
|
35
|
+
//# sourceMappingURL=state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/channels/bitbucket/state.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACjC,8EAA8E;IAC9E,YAAY,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,uDAAuD;IACvD,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,2DAA2D;IAC3D,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,kCAAkC;IAClC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,wBAAgB,0BAA0B,CACxC,SAAS,GAAE,OAAO,CAAC,qBAAqB,CAAM,GAC7C,qBAAqB,CAYvB;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE;IACnD,UAAU,EAAE;QAAE,OAAO,EAAE,gBAAgB,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,GAAG,qBAAqB,CAWxB"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Durable per-session Bitbucket channel state, persisted with the turn so
|
|
3
|
+
* channel stream-event handlers can rebuild a repo-bound handle without
|
|
4
|
+
* re-parsing the webhook.
|
|
5
|
+
*/
|
|
6
|
+
export function emptyBitbucketChannelState(overrides = {}) {
|
|
7
|
+
return Object.assign({ dialect: null, repoFullName: "", repoUuid: null, pullRequestId: null, headSha: null, triggeringCommentId: null, deliveryId: null, eventType: null }, overrides);
|
|
8
|
+
}
|
|
9
|
+
export function bitbucketChannelStateForEvent(input) {
|
|
10
|
+
var _a, _b, _c, _d, _e;
|
|
11
|
+
return emptyBitbucketChannelState({
|
|
12
|
+
dialect: input.repository.dialect,
|
|
13
|
+
repoFullName: input.repository.fullName,
|
|
14
|
+
repoUuid: (_a = input.repository.uuid) !== null && _a !== void 0 ? _a : null,
|
|
15
|
+
pullRequestId: (_b = input.pullRequestId) !== null && _b !== void 0 ? _b : null,
|
|
16
|
+
headSha: (_c = input.headSha) !== null && _c !== void 0 ? _c : null,
|
|
17
|
+
triggeringCommentId: (_d = input.triggeringCommentId) !== null && _d !== void 0 ? _d : null,
|
|
18
|
+
deliveryId: (_e = input.deliveryId) !== null && _e !== void 0 ? _e : null,
|
|
19
|
+
eventType: input.eventType,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import type { ContinuationIdentity } from "../../internal/continuation-identity.js";
|
|
2
|
+
import type { AgentCloudOptions, ArtifactsApi, AuthContext, AuthPolicy, ChannelEventHandlers, ChannelStartArgs, HostContext, SendMessageFn } from "../../types.js";
|
|
3
|
+
import type { BitbucketTokenProvider } from "./api.js";
|
|
4
|
+
import type { BitbucketHandle } from "./binding.js";
|
|
5
|
+
import type { BitbucketChannelState } from "./state.js";
|
|
6
|
+
/**
|
|
7
|
+
* Which Bitbucket sent the payload. Cloud bodies carry `pullrequest` and
|
|
8
|
+
* `repository.uuid`; Data Center bodies carry `pullRequest` and
|
|
9
|
+
* `repository.project.key`.
|
|
10
|
+
*/
|
|
11
|
+
export type BitbucketDialect = "cloud" | "data-center";
|
|
12
|
+
export interface BitbucketUser {
|
|
13
|
+
/** Cloud `uuid` (braces included) or Data Center numeric `id`. */
|
|
14
|
+
id: string;
|
|
15
|
+
displayName?: string;
|
|
16
|
+
/** Cloud `nickname` / Data Center `name`. */
|
|
17
|
+
username?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface BitbucketRepositoryRef {
|
|
20
|
+
dialect: BitbucketDialect;
|
|
21
|
+
/**
|
|
22
|
+
* `workspace/repo` (Cloud) or `PROJECT/repo` (Data Center), as delivered.
|
|
23
|
+
* Continuation keys lowercase it; consumers should too when comparing.
|
|
24
|
+
*/
|
|
25
|
+
fullName: string;
|
|
26
|
+
/** Workspace slug (Cloud) or project key (Data Center). */
|
|
27
|
+
owner: string;
|
|
28
|
+
slug: string;
|
|
29
|
+
/** Cloud `repository.uuid` (braces included). */
|
|
30
|
+
uuid?: string;
|
|
31
|
+
/** Data Center numeric repository id. */
|
|
32
|
+
id?: number;
|
|
33
|
+
/** Web URL when the payload carries one. */
|
|
34
|
+
htmlUrl?: string;
|
|
35
|
+
}
|
|
36
|
+
/** A pull request normalized from either dialect. */
|
|
37
|
+
export interface BitbucketPullRequestEvent {
|
|
38
|
+
/**
|
|
39
|
+
* Cloud-normalized action: `created`, `updated`, `approved`, `unapproved`,
|
|
40
|
+
* `changes_request_created`, `fulfilled`, `rejected`.
|
|
41
|
+
*/
|
|
42
|
+
action: string;
|
|
43
|
+
id: number;
|
|
44
|
+
title?: string;
|
|
45
|
+
description?: string | null;
|
|
46
|
+
/** `OPEN`, `MERGED`, `DECLINED`, `SUPERSEDED`. */
|
|
47
|
+
state?: string;
|
|
48
|
+
draft?: boolean;
|
|
49
|
+
sourceBranch?: string;
|
|
50
|
+
targetBranch?: string;
|
|
51
|
+
/** Source-branch head: Cloud `source.commit.hash` / DC `fromRef.latestCommit`. */
|
|
52
|
+
headSha?: string;
|
|
53
|
+
/** DC `previousFromHash` on `pr:from_ref_updated` — new commits were pushed. */
|
|
54
|
+
previousHeadSha?: string;
|
|
55
|
+
author?: BitbucketUser;
|
|
56
|
+
htmlUrl?: string;
|
|
57
|
+
}
|
|
58
|
+
export interface BitbucketPullRequestComment {
|
|
59
|
+
id: number;
|
|
60
|
+
body: string;
|
|
61
|
+
author?: BitbucketUser;
|
|
62
|
+
htmlUrl?: string;
|
|
63
|
+
/** Cloud `comment.inline` when the comment is anchored to a file. */
|
|
64
|
+
inline?: {
|
|
65
|
+
path?: string;
|
|
66
|
+
to?: number;
|
|
67
|
+
from?: number;
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
export interface BitbucketPushChange {
|
|
71
|
+
ref?: string;
|
|
72
|
+
/** Branch / tag name. */
|
|
73
|
+
name?: string;
|
|
74
|
+
before?: string;
|
|
75
|
+
after?: string;
|
|
76
|
+
type?: string;
|
|
77
|
+
}
|
|
78
|
+
export interface BitbucketPush {
|
|
79
|
+
changes: BitbucketPushChange[];
|
|
80
|
+
}
|
|
81
|
+
export interface BitbucketEventContext {
|
|
82
|
+
/** `X-Request-UUID` (Cloud) / `X-Request-Id` (DC), when present. */
|
|
83
|
+
deliveryId?: string;
|
|
84
|
+
/** Cloud-normalized event key (`pullrequest:created`, `repo:push`, …). */
|
|
85
|
+
eventType: string;
|
|
86
|
+
/** Raw `X-Event-Key` as delivered (DC keys before normalization). */
|
|
87
|
+
rawEventType: string;
|
|
88
|
+
repository: BitbucketRepositoryRef;
|
|
89
|
+
pullRequestId?: number;
|
|
90
|
+
pullRequestUrl?: string;
|
|
91
|
+
/** Raw parsed payload record, for consumers whose normalization needs more. */
|
|
92
|
+
payload: Record<string, unknown>;
|
|
93
|
+
/** `actor` on the payload — who triggered the delivery. */
|
|
94
|
+
sender?: BitbucketUser;
|
|
95
|
+
/**
|
|
96
|
+
* Repo-bound Bitbucket API (`api`, `request`, `setBuildStatus`,
|
|
97
|
+
* `createCheck`) in the delivery's dialect. Routes through the Cursor SCM
|
|
98
|
+
* proxy under `cursorAccount` + `--cursor-scm-proxy`; otherwise uses
|
|
99
|
+
* {@link BitbucketChannelOptions.token} / `BITBUCKET_TOKEN` against the
|
|
100
|
+
* dialect's API base.
|
|
101
|
+
*/
|
|
102
|
+
bitbucket: BitbucketHandle;
|
|
103
|
+
/**
|
|
104
|
+
* Channel `send`. Set on every delivery path (HTTP webhook, hosted
|
|
105
|
+
* admission) so a hook can start a turn itself instead of returning
|
|
106
|
+
* `{ auth, message }` or a deferred `{ task }`.
|
|
107
|
+
*/
|
|
108
|
+
send?: SendMessageFn;
|
|
109
|
+
host: HostContext;
|
|
110
|
+
artifacts: ArtifactsApi;
|
|
111
|
+
}
|
|
112
|
+
export type BitbucketTurnDispatch = {
|
|
113
|
+
auth: AuthContext;
|
|
114
|
+
message?: string;
|
|
115
|
+
title?: string;
|
|
116
|
+
context?: readonly string[];
|
|
117
|
+
};
|
|
118
|
+
/** Bound per-delivery helpers passed to a {@link BitbucketTaskDispatch.task}. */
|
|
119
|
+
export interface BitbucketTaskArgs {
|
|
120
|
+
send: SendMessageFn;
|
|
121
|
+
waitUntil: (promise: Promise<unknown>) => void;
|
|
122
|
+
}
|
|
123
|
+
/** Run a host-side handler after the webhook is acknowledged with a 202. */
|
|
124
|
+
export type BitbucketTaskDispatch = {
|
|
125
|
+
task: (args: BitbucketTaskArgs) => void | Promise<void>;
|
|
126
|
+
};
|
|
127
|
+
export type BitbucketDispatch = BitbucketTurnDispatch | BitbucketTaskDispatch;
|
|
128
|
+
export type BitbucketDispatchResult = BitbucketDispatch | null | Promise<BitbucketDispatch | null>;
|
|
129
|
+
export type BitbucketPullRequestHook = (ctx: BitbucketEventContext, pullRequest: BitbucketPullRequestEvent) => BitbucketDispatchResult;
|
|
130
|
+
export type BitbucketPullRequestCommentHook = (ctx: BitbucketEventContext, comment: BitbucketPullRequestComment, pullRequest: BitbucketPullRequestEvent) => BitbucketDispatchResult;
|
|
131
|
+
export type BitbucketPushHook = (ctx: BitbucketEventContext, push: BitbucketPush) => BitbucketDispatchResult;
|
|
132
|
+
export type BitbucketEventHook = (ctx: BitbucketEventContext, event: {
|
|
133
|
+
eventType: string;
|
|
134
|
+
rawEventType: string;
|
|
135
|
+
payload: unknown;
|
|
136
|
+
}) => BitbucketDispatchResult;
|
|
137
|
+
export type BitbucketCloudOptionsResolver = (ctx: BitbucketEventContext, pullRequest: BitbucketPullRequestEvent) => AgentCloudOptions | undefined | Promise<AgentCloudOptions | undefined>;
|
|
138
|
+
/** One verified Bitbucket delivery handed to {@link dispatchBitbucketWebhook}. */
|
|
139
|
+
export interface BitbucketWebhookDelivery {
|
|
140
|
+
/** Cloud-normalized event key (hosted admission passes the envelope's). */
|
|
141
|
+
eventType: string;
|
|
142
|
+
/** `X-Event-Key` as delivered. Defaults to {@link eventType}. */
|
|
143
|
+
rawEventType?: string;
|
|
144
|
+
payload: Record<string, unknown>;
|
|
145
|
+
deliveryId?: string;
|
|
146
|
+
}
|
|
147
|
+
export interface BitbucketChannelOptions {
|
|
148
|
+
/**
|
|
149
|
+
* Use the signed-in Cursor account for inbound Bitbucket events delivered
|
|
150
|
+
* by the Cursor backend. `true` takes repo scope from the deployment;
|
|
151
|
+
* `{ repos }` (`workspace/repo` or `PROJECT/repo`) makes the channel
|
|
152
|
+
* self-contained.
|
|
153
|
+
*/
|
|
154
|
+
cursorAccount?: boolean | {
|
|
155
|
+
repos: readonly string[];
|
|
156
|
+
};
|
|
157
|
+
/**
|
|
158
|
+
* Access token (or provider) for direct `ctx.bitbucket` calls when not in
|
|
159
|
+
* proxy mode. Sent as `Authorization: Bearer`. Falls back to
|
|
160
|
+
* `BITBUCKET_TOKEN`.
|
|
161
|
+
*/
|
|
162
|
+
token?: string | BitbucketTokenProvider;
|
|
163
|
+
/**
|
|
164
|
+
* REST base for direct `ctx.bitbucket` calls. Defaults to
|
|
165
|
+
* `BITBUCKET_API_BASE_URL`, else api.bitbucket.org 2.0 (Cloud). Data
|
|
166
|
+
* Center deploys must set one of these; the payload's repository link is
|
|
167
|
+
* never used to pick where the token is sent.
|
|
168
|
+
*/
|
|
169
|
+
apiBaseUrl?: string;
|
|
170
|
+
/**
|
|
171
|
+
* Webhook secret for direct HTTP deliveries: `X-Hub-Signature`
|
|
172
|
+
* `sha256=<hmac>` over the raw body (both dialects). Falls back to
|
|
173
|
+
* `BITBUCKET_WEBHOOK_SECRET`. With a secret set the HMAC is the request
|
|
174
|
+
* auth; without one production stays loopback-strict and `serve --dev`
|
|
175
|
+
* admits unsigned loopback deliveries.
|
|
176
|
+
*/
|
|
177
|
+
webhookSecret?: string | (() => string | undefined);
|
|
178
|
+
/**
|
|
179
|
+
* Optional repo allowlist (`workspace/repo` / `PROJECT/repo`,
|
|
180
|
+
* case-insensitive). Events from other repos are acked without a turn.
|
|
181
|
+
*/
|
|
182
|
+
repos?: readonly string[];
|
|
183
|
+
/** Route auth chain; defaults follow {@link webhookSecret}. */
|
|
184
|
+
auth?: AuthPolicy[];
|
|
185
|
+
/** Route path under `/v1/channels/<name>`. Defaults to `/`. */
|
|
186
|
+
path?: string;
|
|
187
|
+
/**
|
|
188
|
+
* Pin the event keys this channel dispatches on (Cloud vocabulary; DC keys
|
|
189
|
+
* are normalized). Published as `meta.bitbucketWebhookEvents`. Defaults to
|
|
190
|
+
* the set derived from hooks.
|
|
191
|
+
*/
|
|
192
|
+
webhookEvents?: readonly string[];
|
|
193
|
+
/**
|
|
194
|
+
* Continuation selector. Omitted inherits {@link AgentConfig.architecture}:
|
|
195
|
+
* engine-minted per-PR continuation unless the agent set
|
|
196
|
+
* `architecture: "v2"` (then `bitbucket.pr/v2`, or `bitbucket.none/v2`
|
|
197
|
+
* when a non-PR event is declared).
|
|
198
|
+
*/
|
|
199
|
+
continuation?: ContinuationIdentity;
|
|
200
|
+
/**
|
|
201
|
+
* Decide whether an inbound pull-request event starts a turn. Return
|
|
202
|
+
* `{ auth: defaultBitbucketAuth(ctx) }` to dispatch, `null` to ignore.
|
|
203
|
+
* Without this hook the channel dispatches on `created` and on `updated`
|
|
204
|
+
* that pushed commits (Data Center `previousFromHash` differs from the
|
|
205
|
+
* head; Cloud `pullrequest:updated` carries no diff and is not dispatched).
|
|
206
|
+
*/
|
|
207
|
+
onPullRequest?: BitbucketPullRequestHook;
|
|
208
|
+
/** Opt-in `pullrequest:comment_created` handler. */
|
|
209
|
+
onPullRequestComment?: BitbucketPullRequestCommentHook;
|
|
210
|
+
/** Opt-in `repo:push` handler. No default dispatch. */
|
|
211
|
+
onPush?: BitbucketPushHook;
|
|
212
|
+
/**
|
|
213
|
+
* Catch-all for event keys without a typed hook (`repo:fork`,
|
|
214
|
+
* `issue:created`, …). NOT a fallback: typed events never reach it.
|
|
215
|
+
*/
|
|
216
|
+
onEvent?: BitbucketEventHook;
|
|
217
|
+
/**
|
|
218
|
+
* Per-session cloud options. Pass `true` to attach the repo using the
|
|
219
|
+
* pull request's web URL, or a resolver for custom cloud options.
|
|
220
|
+
*/
|
|
221
|
+
cloud?: boolean | AgentCloudOptions | BitbucketCloudOptionsResolver;
|
|
222
|
+
/** Channel stream-event handlers. */
|
|
223
|
+
events?: ChannelEventHandlers<BitbucketChannelState>;
|
|
224
|
+
/** Called once when the server mounts this channel. */
|
|
225
|
+
onStart?: (args: ChannelStartArgs) => void | Promise<void>;
|
|
226
|
+
/** Called when the server shuts down. */
|
|
227
|
+
onStop?: () => void | Promise<void>;
|
|
228
|
+
}
|
|
229
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/channels/bitbucket/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ChannelDefinition } from "../../types.js";
|
|
2
|
+
import { type ChangeMonitorsChannelOptions } from "./types.js";
|
|
3
|
+
export declare function changeMonitorsChannel(options: ChangeMonitorsChannelOptions): ChannelDefinition;
|
|
4
|
+
export declare function getChangeMonitorsChannelOptions(definition: object): ChangeMonitorsChannelOptions | undefined;
|
|
5
|
+
//# sourceMappingURL=change-monitors-channel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"change-monitors-channel.d.ts","sourceRoot":"","sources":["../../../src/channels/change-monitors/change-monitors-channel.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAEL,KAAK,4BAA4B,EAElC,MAAM,YAAY,CAAC;AA4CpB,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,4BAA4B,GACpC,iBAAiB,CAEnB;AAED,wBAAgB,+BAA+B,CAC7C,UAAU,EAAE,MAAM,GACjB,4BAA4B,GAAG,SAAS,CAE1C"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { createFactoryResourceChannel } from "../../internal/factory-resource-channel.js";
|
|
3
|
+
import { CHECKPOINT_CREATED_EVENT_TYPE, } from "./types.js";
|
|
4
|
+
const checkpointResourceSchema = z
|
|
5
|
+
.object({
|
|
6
|
+
name: z.string().min(1),
|
|
7
|
+
deployment: z.string().min(1),
|
|
8
|
+
runKey: z.string().min(1),
|
|
9
|
+
evidenceSummary: z.string().min(1),
|
|
10
|
+
planRevision: z.string().optional(),
|
|
11
|
+
createTime: z.string().min(1).optional(),
|
|
12
|
+
description: z.string().optional(),
|
|
13
|
+
clear: z.object({}).passthrough().optional(),
|
|
14
|
+
issues: z
|
|
15
|
+
.object({ title: z.string().min(1) })
|
|
16
|
+
.passthrough()
|
|
17
|
+
.optional(),
|
|
18
|
+
inconclusive: z.object({}).passthrough().optional(),
|
|
19
|
+
})
|
|
20
|
+
.passthrough()
|
|
21
|
+
.refine((checkpoint) => [checkpoint.clear, checkpoint.issues, checkpoint.inconclusive].filter((arm) => arm !== undefined).length === 1, { message: "checkpoint must have exactly one result arm" });
|
|
22
|
+
const checkpointCreatedEventSchema = z.object({
|
|
23
|
+
eventId: z.string().min(1),
|
|
24
|
+
eventType: z.literal(CHECKPOINT_CREATED_EVENT_TYPE),
|
|
25
|
+
teamId: z.string().min(1),
|
|
26
|
+
occurredAtMs: z.number().int().nonnegative(),
|
|
27
|
+
checkpoint: checkpointResourceSchema,
|
|
28
|
+
});
|
|
29
|
+
const pack = createFactoryResourceChannel({
|
|
30
|
+
kind: "change_monitors",
|
|
31
|
+
eventTypes: [CHECKPOINT_CREATED_EVENT_TYPE],
|
|
32
|
+
eventSchema: checkpointCreatedEventSchema,
|
|
33
|
+
replayDescription: "Replay a Change Monitor checkpoint-created event.",
|
|
34
|
+
invalidError: "invalid change-monitor checkpoint event",
|
|
35
|
+
});
|
|
36
|
+
export function changeMonitorsChannel(options) {
|
|
37
|
+
return pack.channel(options);
|
|
38
|
+
}
|
|
39
|
+
export function getChangeMonitorsChannelOptions(definition) {
|
|
40
|
+
return pack.getOptions(definition);
|
|
41
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { changeMonitorsChannel } from "./change-monitors-channel.js";
|
|
2
|
+
export type { ChangeMonitorsChannelOptions, CheckpointCreatedEvent, CheckpointCreatedEventType, CheckpointResource, } from "./types.js";
|
|
3
|
+
export { CHECKPOINT_CREATED_EVENT_TYPE } from "./types.js";
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/channels/change-monitors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,YAAY,EACV,4BAA4B,EAC5B,sBAAsB,EACtB,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,6BAA6B,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import type { ContinuationIdentity } from "../../internal/continuation-identity.js";
|
|
2
|
+
import type { ChannelDefinition, ChannelHandlerArgs } from "../../types.js";
|
|
3
|
+
export declare const CHECKPOINT_CREATED_EVENT_TYPE: "checkpoint.created";
|
|
4
|
+
export type CheckpointCreatedEventType = typeof CHECKPOINT_CREATED_EVENT_TYPE;
|
|
5
|
+
/**
|
|
6
|
+
* Factory Checkpoint JSON (camelCase proto JSON). Exactly one result arm is
|
|
7
|
+
* set: `clear`, `issues`, or `inconclusive`. The channel does not pre-filter.
|
|
8
|
+
*/
|
|
9
|
+
export type CheckpointResource = {
|
|
10
|
+
name: string;
|
|
11
|
+
deployment: string;
|
|
12
|
+
runKey: string;
|
|
13
|
+
evidenceSummary: string;
|
|
14
|
+
planRevision?: string;
|
|
15
|
+
createTime?: string;
|
|
16
|
+
description?: string;
|
|
17
|
+
clear?: Record<string, unknown>;
|
|
18
|
+
issues?: {
|
|
19
|
+
title: string;
|
|
20
|
+
};
|
|
21
|
+
inconclusive?: Record<string, unknown>;
|
|
22
|
+
};
|
|
23
|
+
/** Factory `checkpoint.created` for every Change Monitor Checkpoint create. */
|
|
24
|
+
export type CheckpointCreatedEvent = {
|
|
25
|
+
eventId: string;
|
|
26
|
+
eventType: CheckpointCreatedEventType;
|
|
27
|
+
teamId: string;
|
|
28
|
+
occurredAtMs: number;
|
|
29
|
+
checkpoint: CheckpointResource;
|
|
30
|
+
};
|
|
31
|
+
export type ChangeMonitorsChannelOptions = {
|
|
32
|
+
onEvent: (event: CheckpointCreatedEvent, args: ChannelHandlerArgs) => Promise<unknown> | unknown;
|
|
33
|
+
continuation?: ContinuationIdentity;
|
|
34
|
+
path?: string;
|
|
35
|
+
auth?: ChannelDefinition["auth"];
|
|
36
|
+
onStart?: ChannelDefinition["onStart"];
|
|
37
|
+
onStop?: ChannelDefinition["onStop"];
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/channels/change-monitors/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAE5E,eAAO,MAAM,6BAA6B,EAAG,oBAA6B,CAAC;AAE3E,MAAM,MAAM,0BAA0B,GAAG,OAAO,6BAA6B,CAAC;AAE9E;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACxC,CAAC;AAEF,+EAA+E;AAC/E,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,0BAA0B,CAAC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,kBAAkB,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,OAAO,EAAE,CACP,KAAK,EAAE,sBAAsB,EAC7B,IAAI,EAAE,kBAAkB,KACrB,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAChC,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,CAAC,EAAE,iBAAiB,CAAC,QAAQ,CAAC,CAAC;CACtC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const CHECKPOINT_CREATED_EVENT_TYPE = "checkpoint.created";
|
|
@@ -10,16 +10,16 @@ export declare function getDeploymentsChannelOptions(definition: object): Deploy
|
|
|
10
10
|
* subscriptions. Published as `meta.deploymentEventTypes` so the deploy
|
|
11
11
|
* manifest can extract `eventTypes`.
|
|
12
12
|
*
|
|
13
|
-
* A channel with no resolved subscriptions declares the full event set
|
|
14
|
-
*
|
|
15
|
-
* hosted freeze bakes hermetically (no customer env/secrets), so
|
|
16
|
-
* `[]` there would leave the manifest without event types and no
|
|
13
|
+
* A channel with no resolved subscriptions declares the full event set.
|
|
14
|
+
* That covers an omitted `deploySourceUris` and the env-configured case:
|
|
15
|
+
* the hosted freeze bakes hermetically (no customer env/secrets), so
|
|
16
|
+
* deriving `[]` there would leave the manifest without event types and no
|
|
17
17
|
* subscription edge could ever materialize (invariant 26). Capability is
|
|
18
18
|
* the channel's code shape — `onEvent` handles any deployment event —
|
|
19
19
|
* while sources/environments/event narrowing are runtime subscription
|
|
20
20
|
* config; the hosted-admission adapter re-applies them before authored
|
|
21
21
|
* code runs. Inertness is still guaranteed by scope: a deploy that names
|
|
22
|
-
* no
|
|
22
|
+
* no repositories binds no edges.
|
|
23
23
|
*/
|
|
24
24
|
export declare function deriveDeploymentEventTypes(options: Pick<DeploymentsChannelOptions, "deploySourceUris" | "events">): string[];
|
|
25
25
|
/**
|
|
@@ -32,8 +32,6 @@ export declare function dispatchDeploymentEvent(input: {
|
|
|
32
32
|
event: DeploymentEvent;
|
|
33
33
|
args: ChannelHandlerArgs;
|
|
34
34
|
}): Promise<Response>;
|
|
35
|
-
export type DeploymentsDispatchOutcome = "skip" | "task";
|
|
36
|
-
export declare function getDeploymentsDispatchOutcome(response: Response): DeploymentsDispatchOutcome | undefined;
|
|
37
35
|
/**
|
|
38
36
|
* Whether this channel admits the event on a hosted pod. The hosted
|
|
39
37
|
* control plane fans out on `(deploy_source, eventType, team)` edges only —
|
|
@@ -42,13 +40,14 @@ export declare function getDeploymentsDispatchOutcome(response: Response): Deplo
|
|
|
42
40
|
* the v1 relay does before `onEvent`.
|
|
43
41
|
*
|
|
44
42
|
* A channel with NO resolved subscriptions admits everything the control
|
|
45
|
-
* plane delivered
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* delivery. Same
|
|
51
|
-
* subscriptions narrow;
|
|
43
|
+
* plane delivered. Omitting `deploySourceUris` picks that deliberately:
|
|
44
|
+
* the deploy-time edges (bound from the watched repositories) already
|
|
45
|
+
* carry the tenant's scope, so re-filtering here could only narrow it with
|
|
46
|
+
* another tenant's list. The same holds for an env-configured channel that
|
|
47
|
+
* resolves empty on a restored pod, where refusing would silently drop
|
|
48
|
+
* every delivery. Same rule as {@link deriveDeploymentEventTypes}:
|
|
49
|
+
* authored subscriptions narrow; a channel that names none defers to the
|
|
50
|
+
* deploy scope.
|
|
52
51
|
*/
|
|
53
52
|
export declare function deploymentEventMatchesChannel(options: DeploymentsChannelOptions, event: DeploymentEvent): boolean;
|
|
54
53
|
/**
|
|
@@ -80,6 +79,15 @@ export declare function deploymentEventMatchesChannel(options: DeploymentsChanne
|
|
|
80
79
|
* adapter re-applies this channel's subscription filter — environments are
|
|
81
80
|
* not edge identity — and skips before authored code runs.
|
|
82
81
|
*
|
|
82
|
+
* A hosted agent therefore omits `deploySourceUris`:
|
|
83
|
+
*
|
|
84
|
+
* ```ts
|
|
85
|
+
* export default deploymentsChannel({
|
|
86
|
+
* events: ["deployment.created", "deployment.succeeded"],
|
|
87
|
+
* onEvent: async (event, { send }) => { ... },
|
|
88
|
+
* });
|
|
89
|
+
* ```
|
|
90
|
+
*
|
|
83
91
|
* The route on this channel exists for local replay (`agent-sdk` and tests):
|
|
84
92
|
* POST an event body and it runs the same `onEvent`.
|
|
85
93
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployments-channel.d.ts","sourceRoot":"","sources":["../../../src/channels/deployments/deployments-channel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deployments-channel.d.ts","sourceRoot":"","sources":["../../../src/channels/deployments/deployments-channel.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAC/B,MAAM,YAAY,CAAC;AAqBpB;;;GAGG;AACH,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,MAAM,GACjB,yBAAyB,GAAG,SAAS,CAEvC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,IAAI,CAAC,yBAAyB,EAAE,kBAAkB,GAAG,QAAQ,CAAC,GACtE,MAAM,EAAE,CAYV;AAED;;;;GAIG;AACH,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IACnD,OAAO,EAAE,yBAAyB,CAAC;IACnC,KAAK,EAAE,eAAe,CAAC;IACvB,IAAI,EAAE,kBAAkB,CAAC;CAC1B,GAAG,OAAO,CAAC,QAAQ,CAAC,CAapB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,yBAAyB,EAClC,KAAK,EAAE,eAAe,GACrB,OAAO,CAUT;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,yBAAyB,GACjC,iBAAiB,CAoDnB"}
|
|
@@ -9,6 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
};
|
|
10
10
|
import { z } from "zod";
|
|
11
11
|
import { defineChannel, localDevStrict, POST } from "../../channels.js";
|
|
12
|
+
import { skipped, tagOutcome } from "../../internal/channel-dispatch.js";
|
|
12
13
|
import { deploymentEventMatches, resolveDeploymentSubscriptions, } from "../../internal/cursor-deployment-relay.js";
|
|
13
14
|
import { attachHostedAdmissionAdapter } from "../../internal/hosted-admission-adapter.js";
|
|
14
15
|
import { bindLocalIngressSend } from "../../internal/local-ingress.js";
|
|
@@ -39,16 +40,16 @@ export function getDeploymentsChannelOptions(definition) {
|
|
|
39
40
|
* subscriptions. Published as `meta.deploymentEventTypes` so the deploy
|
|
40
41
|
* manifest can extract `eventTypes`.
|
|
41
42
|
*
|
|
42
|
-
* A channel with no resolved subscriptions declares the full event set
|
|
43
|
-
*
|
|
44
|
-
* hosted freeze bakes hermetically (no customer env/secrets), so
|
|
45
|
-
* `[]` there would leave the manifest without event types and no
|
|
43
|
+
* A channel with no resolved subscriptions declares the full event set.
|
|
44
|
+
* That covers an omitted `deploySourceUris` and the env-configured case:
|
|
45
|
+
* the hosted freeze bakes hermetically (no customer env/secrets), so
|
|
46
|
+
* deriving `[]` there would leave the manifest without event types and no
|
|
46
47
|
* subscription edge could ever materialize (invariant 26). Capability is
|
|
47
48
|
* the channel's code shape — `onEvent` handles any deployment event —
|
|
48
49
|
* while sources/environments/event narrowing are runtime subscription
|
|
49
50
|
* config; the hosted-admission adapter re-applies them before authored
|
|
50
51
|
* code runs. Inertness is still guaranteed by scope: a deploy that names
|
|
51
|
-
* no
|
|
52
|
+
* no repositories binds no edges.
|
|
52
53
|
*/
|
|
53
54
|
export function deriveDeploymentEventTypes(options) {
|
|
54
55
|
const subscriptions = resolveDeploymentSubscriptions(options);
|
|
@@ -78,17 +79,9 @@ export function dispatchDeploymentEvent(input) {
|
|
|
78
79
|
}));
|
|
79
80
|
// "task": authored `onEvent` ran to completion without a captured send.
|
|
80
81
|
// Hosted admission only consults this when no send was captured.
|
|
81
|
-
return
|
|
82
|
+
return tagOutcome(Response.json({ ok: true }), "task");
|
|
82
83
|
});
|
|
83
84
|
}
|
|
84
|
-
const dispatchOutcomeByResponse = new WeakMap();
|
|
85
|
-
function withDispatchOutcome(response, outcome) {
|
|
86
|
-
dispatchOutcomeByResponse.set(response, outcome);
|
|
87
|
-
return response;
|
|
88
|
-
}
|
|
89
|
-
export function getDeploymentsDispatchOutcome(response) {
|
|
90
|
-
return dispatchOutcomeByResponse.get(response);
|
|
91
|
-
}
|
|
92
85
|
/**
|
|
93
86
|
* Whether this channel admits the event on a hosted pod. The hosted
|
|
94
87
|
* control plane fans out on `(deploy_source, eventType, team)` edges only —
|
|
@@ -97,13 +90,14 @@ export function getDeploymentsDispatchOutcome(response) {
|
|
|
97
90
|
* the v1 relay does before `onEvent`.
|
|
98
91
|
*
|
|
99
92
|
* A channel with NO resolved subscriptions admits everything the control
|
|
100
|
-
* plane delivered
|
|
101
|
-
*
|
|
102
|
-
*
|
|
103
|
-
*
|
|
104
|
-
*
|
|
105
|
-
* delivery. Same
|
|
106
|
-
* subscriptions narrow;
|
|
93
|
+
* plane delivered. Omitting `deploySourceUris` picks that deliberately:
|
|
94
|
+
* the deploy-time edges (bound from the watched repositories) already
|
|
95
|
+
* carry the tenant's scope, so re-filtering here could only narrow it with
|
|
96
|
+
* another tenant's list. The same holds for an env-configured channel that
|
|
97
|
+
* resolves empty on a restored pod, where refusing would silently drop
|
|
98
|
+
* every delivery. Same rule as {@link deriveDeploymentEventTypes}:
|
|
99
|
+
* authored subscriptions narrow; a channel that names none defers to the
|
|
100
|
+
* deploy scope.
|
|
107
101
|
*/
|
|
108
102
|
export function deploymentEventMatchesChannel(options, event) {
|
|
109
103
|
const subscriptions = resolveDeploymentSubscriptions(options);
|
|
@@ -142,6 +136,15 @@ export function deploymentEventMatchesChannel(options, event) {
|
|
|
142
136
|
* adapter re-applies this channel's subscription filter — environments are
|
|
143
137
|
* not edge identity — and skips before authored code runs.
|
|
144
138
|
*
|
|
139
|
+
* A hosted agent therefore omits `deploySourceUris`:
|
|
140
|
+
*
|
|
141
|
+
* ```ts
|
|
142
|
+
* export default deploymentsChannel({
|
|
143
|
+
* events: ["deployment.created", "deployment.succeeded"],
|
|
144
|
+
* onEvent: async (event, { send }) => { ... },
|
|
145
|
+
* });
|
|
146
|
+
* ```
|
|
147
|
+
*
|
|
145
148
|
* The route on this channel exists for local replay (`agent-sdk` and tests):
|
|
146
149
|
* POST an event body and it runs the same `onEvent`.
|
|
147
150
|
*/
|
|
@@ -183,15 +186,10 @@ export function deploymentsChannel(options) {
|
|
|
183
186
|
}
|
|
184
187
|
const event = parsed.data;
|
|
185
188
|
if (!deploymentEventMatchesChannel(options, event)) {
|
|
186
|
-
return
|
|
187
|
-
ok: true,
|
|
188
|
-
skipped: true,
|
|
189
|
-
reason: "subscription_mismatch",
|
|
190
|
-
}), "skip");
|
|
189
|
+
return skipped("subscription_mismatch");
|
|
191
190
|
}
|
|
192
191
|
return dispatchDeploymentEvent({ options, event, args });
|
|
193
192
|
}),
|
|
194
|
-
getOutcome: (response) => getDeploymentsDispatchOutcome(response),
|
|
195
193
|
});
|
|
196
194
|
return definition;
|
|
197
195
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ContinuationIdentity } from "../../continuation.js";
|
|
1
|
+
import type { ContinuationIdentity } from "../../internal/continuation-identity.js";
|
|
2
2
|
import type { ChannelDefinition, ChannelHandlerArgs } from "../../types.js";
|
|
3
3
|
/** {@link ChannelMeta.kind} value used by {@link deploymentsChannel}. */
|
|
4
4
|
export declare const DEPLOYMENTS_CHANNEL_KIND = "deployments";
|
|
@@ -44,12 +44,18 @@ export interface DeploymentsChannelOptions {
|
|
|
44
44
|
* and then receives nothing. A bare string takes the default environment and
|
|
45
45
|
* event filters.
|
|
46
46
|
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
47
|
+
* Omit on hosted v2. The control plane then binds `deploy_source` edges
|
|
48
|
+
* from the deploy's watched `repositories` and the channel admits what it
|
|
49
|
+
* is sent. That is the multi-tenant shape: an agent cannot enumerate
|
|
50
|
+
* sources for a tenant it has never seen.
|
|
51
|
+
*
|
|
52
|
+
* Name sources to narrow below that scope, or to drive the self-hosted
|
|
53
|
+
* relay, which has no deploy scope to inherit. On that wire `[]` means
|
|
54
|
+
* deregister, which is why deferring to the deploy scope is an omitted
|
|
55
|
+
* field and not an empty one. A live array that starts empty and is filled
|
|
56
|
+
* later is re-read on each registration heartbeat.
|
|
51
57
|
*/
|
|
52
|
-
deploySourceUris
|
|
58
|
+
deploySourceUris?: readonly (string | DeploymentSubscription)[];
|
|
53
59
|
/**
|
|
54
60
|
* Applied to every subscription that does not set its own. Omit or leave
|
|
55
61
|
* empty for every environment.
|