@cursor/july 0.1.105 → 0.1.108
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/README.md +10 -5
- package/dist/bin/agent-serve.js +31 -16
- package/dist/channels/bitbucket/types.d.ts +2 -4
- package/dist/channels/bitbucket/types.d.ts.map +1 -1
- package/dist/channels/deployments/types.d.ts +5 -8
- package/dist/channels/deployments/types.d.ts.map +1 -1
- package/dist/channels/github/github-channel.js +8 -5
- package/dist/channels/github/types.d.ts +7 -5
- package/dist/channels/github/types.d.ts.map +1 -1
- package/dist/channels/gitlab/types.d.ts +2 -5
- package/dist/channels/gitlab/types.d.ts.map +1 -1
- package/dist/channels/origin/origin-channel.d.ts.map +1 -1
- package/dist/channels/origin/origin-channel.js +27 -13
- package/dist/channels/origin/types.d.ts +7 -4
- package/dist/channels/origin/types.d.ts.map +1 -1
- package/dist/channels/slack/defaults.d.ts.map +1 -1
- package/dist/channels/slack/defaults.js +3 -0
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.js +1 -1
- package/dist/channels/slack/live-delivery.d.ts.map +1 -1
- package/dist/channels/slack/live-delivery.js +48 -11
- package/dist/channels/slack/types.d.ts +4 -3
- package/dist/channels/slack/types.d.ts.map +1 -1
- package/dist/channels.d.ts +45 -0
- package/dist/channels.d.ts.map +1 -1
- package/dist/channels.js +106 -7
- package/dist/connections.d.ts +2 -1
- package/dist/connections.d.ts.map +1 -1
- package/dist/connections.js +2 -1
- package/dist/docs/404.html +3 -3
- package/dist/docs/ab.html +6 -6
- package/dist/docs/assets/{app.BVwaffdK.js → app.BASKM3M4.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.BHZYsNVi.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.WuWTZ1x8.js → VPLocalSearchBox.BOKxlYGP.js} +2 -2
- package/dist/docs/assets/chunks/{theme.BYdI_6sF.js → theme.DbDZW-zb.js} +2 -2
- package/dist/docs/assets/{deployment.md.MFPKqsqI.js → deployment.md.JenwuCCB.js} +4 -4
- package/dist/docs/assets/{deployment.md.MFPKqsqI.lean.js → deployment.md.JenwuCCB.lean.js} +1 -1
- package/dist/docs/assets/{evals.md.CbMoebP1.js → evals.md.C1ekS3k2.js} +1 -1
- package/dist/docs/assets/guides_cloud-agents.md.BsloyHdY.js +9 -0
- package/dist/docs/assets/{guides_cloud-agents.md.DS8RIjwx.lean.js → guides_cloud-agents.md.BsloyHdY.lean.js} +1 -1
- package/dist/docs/assets/{guides_github.md.c0gdGJ-D.js → guides_github.md.BH33UEBJ.js} +1 -1
- package/dist/docs/assets/{guides_grokbot-agents.md.DVqdhBKb.js → guides_grokbot-agents.md.DyV-WArv.js} +1 -1
- package/dist/docs/assets/guides_improve.md.BGVk32bK.js +14 -0
- package/dist/docs/assets/guides_improve.md.BGVk32bK.lean.js +1 -0
- package/dist/docs/assets/{guides_opentelemetry.md.COh9jFVg.js → guides_opentelemetry.md.SCRMskno.js} +3 -3
- package/dist/docs/assets/{guides_opentelemetry.md.COh9jFVg.lean.js → guides_opentelemetry.md.SCRMskno.lean.js} +1 -1
- package/dist/docs/assets/{guides_slack.md.9oHPye9o.js → guides_slack.md.D4RVMM4G.js} +3 -3
- package/dist/docs/assets/{guides_slack.md.9oHPye9o.lean.js → guides_slack.md.D4RVMM4G.lean.js} +1 -1
- package/dist/docs/assets/index.md.BjH1w2ZW.js +5 -0
- package/dist/docs/assets/{reference_agent-config.md.CHNpiyp4.js → reference_agent-config.md.CvoL6pof.js} +1 -1
- package/dist/docs/assets/{reference_channels.md.DBGcaB7m.js → reference_channels.md.D-qTqwcq.js} +2 -2
- package/dist/docs/assets/{reference_channels.md.DBGcaB7m.lean.js → reference_channels.md.D-qTqwcq.lean.js} +1 -1
- package/dist/docs/assets/{reference_cli.md.C6Lo8SEd.js → reference_cli.md.Ca26u0Es.js} +6 -6
- package/dist/docs/assets/{reference_cli.md.C6Lo8SEd.lean.js → reference_cli.md.Ca26u0Es.lean.js} +1 -1
- package/dist/docs/assets/{reference_connections.md.Di6jJAXF.js → reference_connections.md.BojkC6c5.js} +1 -1
- package/dist/docs/assets/{reference_extensions.md.CGmMLblt.js → reference_extensions.md.CPWt00ds.js} +1 -1
- package/dist/docs/assets/{scaffolding-agents.md.em43xlY1.js → scaffolding-agents.md.Kctn3OVb.js} +1 -1
- package/dist/docs/assets/{skills_create-agent.md.BVoWPcan.js → skills_create-agent.md.Q3h6Je-e.js} +1 -1
- package/dist/docs/assets/{skills_debug.md.CDbPhHfg.js → skills_debug.md.CVjCXMFF.js} +1 -1
- package/dist/docs/assets/{skills_debug.md.CDbPhHfg.lean.js → skills_debug.md.CVjCXMFF.lean.js} +1 -1
- package/dist/docs/assets/{skills_evals.md.723kpUmA.js → skills_evals.md.BhovOvrl.js} +1 -1
- package/dist/docs/assets/skills_framework-map.md.D-tFZhFS.js +1 -0
- package/dist/docs/assets/{skills_framework-map.md.haibFyoB.lean.js → skills_framework-map.md.D-tFZhFS.lean.js} +1 -1
- package/dist/docs/assets/{skills_github.md.D0JahM8c.js → skills_github.md.hgFX_oKY.js} +1 -1
- package/dist/docs/assets/{skills_otel.md.CqhobH3B.js → skills_otel.md.B5Ddv1xH.js} +1 -1
- package/dist/docs/assets/{style.BRuM8477.css → style.DCD_zyg3.css} +1 -1
- package/dist/docs/assets/troubleshooting.md.CYEAO9bM.js +1 -0
- package/dist/docs/building-with-agents.html +6 -6
- package/dist/docs/concepts.html +5 -5
- package/dist/docs/deployment.html +9 -9
- package/dist/docs/deployment.md +7 -2
- package/dist/docs/evals.html +8 -8
- package/dist/docs/evals.md +3 -2
- package/dist/docs/guides/agent-to-agent.html +6 -6
- package/dist/docs/guides/cloud-agents.html +7 -7
- package/dist/docs/guides/cloud-agents.md +4 -3
- package/dist/docs/guides/convert-automation.html +6 -6
- package/dist/docs/guides/github.html +7 -7
- package/dist/docs/guides/github.md +2 -1
- package/dist/docs/guides/grokbot-agents.html +7 -7
- package/dist/docs/guides/grokbot-agents.md +2 -2
- package/dist/docs/guides/human-in-the-loop.html +6 -6
- package/dist/docs/guides/improve.html +40 -0
- package/dist/docs/guides/improve.md +91 -0
- package/dist/docs/guides/mcp-oauth.html +6 -6
- package/dist/docs/guides/opentelemetry.html +8 -8
- package/dist/docs/guides/opentelemetry.md +3 -4
- package/dist/docs/guides/slack.html +8 -8
- package/dist/docs/guides/slack.md +2 -1
- package/dist/docs/guides/webhooks.html +6 -6
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +6 -6
- package/dist/docs/index.html +8 -8
- package/dist/docs/index.md +4 -0
- package/dist/docs/llms-full.txt +180 -61
- package/dist/docs/llms.txt +1 -0
- package/dist/docs/quickstart.html +6 -6
- package/dist/docs/reference/agent-config.html +7 -7
- package/dist/docs/reference/agent-config.md +5 -2
- package/dist/docs/reference/artifacts.html +6 -6
- package/dist/docs/reference/channels.html +7 -7
- package/dist/docs/reference/channels.md +11 -19
- package/dist/docs/reference/cli.html +11 -11
- package/dist/docs/reference/cli.md +23 -13
- package/dist/docs/reference/connections.html +8 -8
- package/dist/docs/reference/connections.md +2 -1
- package/dist/docs/reference/extensions.html +7 -7
- package/dist/docs/reference/extensions.md +2 -0
- package/dist/docs/reference/hooks.html +6 -6
- package/dist/docs/reference/http-api.html +6 -6
- package/dist/docs/reference/instructions.html +6 -6
- package/dist/docs/reference/playground.html +5 -5
- package/dist/docs/reference/project-layout.html +6 -6
- package/dist/docs/reference/prompt.html +6 -6
- package/dist/docs/reference/result.html +6 -6
- package/dist/docs/reference/schedules.html +6 -6
- package/dist/docs/reference/sessions.html +5 -5
- package/dist/docs/reference/skills.html +6 -6
- package/dist/docs/reference/subagents.html +6 -6
- package/dist/docs/reference/tools.html +6 -6
- package/dist/docs/scaffolding-agents.html +6 -6
- package/dist/docs/scaffolding-agents.md +2 -1
- package/dist/docs/skills/ab.html +6 -6
- package/dist/docs/skills/create-agent.html +8 -8
- package/dist/docs/skills/create-agent.md +1 -1
- package/dist/docs/skills/debug.html +6 -6
- package/dist/docs/skills/debug.md +1 -1
- package/dist/docs/skills/evals.html +8 -8
- package/dist/docs/skills/evals.md +1 -1
- package/dist/docs/skills/framework-map.html +6 -6
- package/dist/docs/skills/framework-map.md +4 -2
- package/dist/docs/skills/github.html +8 -8
- package/dist/docs/skills/github.md +1 -1
- package/dist/docs/skills/hillclimb.html +6 -6
- package/dist/docs/skills/index.html +5 -5
- package/dist/docs/skills/mcp-auth.html +6 -6
- package/dist/docs/skills/otel.html +8 -8
- package/dist/docs/skills/otel.md +3 -3
- package/dist/docs/skills/setup-slack.html +6 -6
- package/dist/docs/storage.html +6 -6
- package/dist/docs/templates/agentic-owners.html +6 -6
- package/dist/docs/templates/agents-md.html +6 -6
- package/dist/docs/templates/code-wiki.html +6 -6
- package/dist/docs/templates/demo.html +6 -6
- package/dist/docs/templates/grokbot-agents.html +6 -6
- package/dist/docs/templates/pr-autofixer.html +6 -6
- package/dist/docs/templates/security-help.html +6 -6
- package/dist/docs/templates/security-reviewer.html +6 -6
- package/dist/docs/templates/triage.html +6 -6
- package/dist/docs/troubleshooting.html +6 -6
- package/dist/docs/troubleshooting.md +1 -1
- package/dist/extensions/improve/extension.d.ts +46 -0
- package/dist/extensions/improve/extension.d.ts.map +1 -0
- package/dist/extensions/improve/extension.js +41 -0
- package/dist/extensions/improve/skills/yourself.d.ts +4 -0
- package/dist/extensions/improve/skills/yourself.d.ts.map +1 -0
- package/dist/extensions/improve/skills/yourself.js +43 -0
- package/dist/index.d.ts +4 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -4
- package/dist/internal/builtin-tools/artifacts.d.ts.map +1 -1
- package/dist/internal/builtin-tools/artifacts.js +2 -3
- package/dist/internal/channel-route-dispatch.d.ts +13 -0
- package/dist/internal/channel-route-dispatch.d.ts.map +1 -0
- package/dist/internal/channel-route-dispatch.js +62 -0
- package/dist/internal/channel-state.d.ts +17 -0
- package/dist/internal/channel-state.d.ts.map +1 -0
- package/dist/internal/channel-state.js +78 -0
- package/dist/internal/cli-ax.d.ts +7 -0
- package/dist/internal/cli-ax.d.ts.map +1 -1
- package/dist/internal/cli-ax.js +99 -1
- package/dist/internal/cli-cursor.d.ts.map +1 -1
- package/dist/internal/cli-cursor.js +2 -0
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +61 -25
- package/dist/internal/cli-mcp-oauth.d.ts.map +1 -1
- package/dist/internal/cli-mcp-oauth.js +15 -0
- package/dist/internal/cli-mcp.d.ts.map +1 -1
- package/dist/internal/cli-mcp.js +12 -0
- package/dist/internal/cli-slack.d.ts.map +1 -1
- package/dist/internal/cli-slack.js +8 -2
- package/dist/internal/cursor/backend-client.d.ts +25 -0
- package/dist/internal/cursor/backend-client.d.ts.map +1 -1
- package/dist/internal/cursor/backend-client.js +57 -2
- package/dist/internal/cursor/credentials.d.ts +8 -2
- package/dist/internal/cursor/credentials.d.ts.map +1 -1
- package/dist/internal/cursor/credentials.js +27 -5
- package/dist/internal/deploy-client.d.ts +35 -0
- package/dist/internal/deploy-client.d.ts.map +1 -1
- package/dist/internal/deploy-client.js +46 -0
- package/dist/internal/deploy-manifest.d.ts +26 -0
- package/dist/internal/deploy-manifest.d.ts.map +1 -1
- package/dist/internal/deploy-manifest.js +99 -13
- package/dist/internal/describe-error.d.ts +1 -0
- package/dist/internal/describe-error.d.ts.map +1 -1
- package/dist/internal/describe-error.js +25 -0
- package/dist/internal/discovery/agent.d.ts.map +1 -1
- package/dist/internal/discovery/agent.js +1 -0
- package/dist/internal/discovery/info.d.ts.map +1 -1
- package/dist/internal/discovery/info.js +7 -3
- package/dist/internal/discovery/modules.d.ts +1 -1
- package/dist/internal/discovery/modules.d.ts.map +1 -1
- package/dist/internal/discovery/modules.js +1 -0
- package/dist/internal/discovery/project.d.ts.map +1 -1
- package/dist/internal/discovery/project.js +3 -0
- package/dist/internal/discovery/reminders.d.ts +7 -0
- package/dist/internal/discovery/reminders.d.ts.map +1 -0
- package/dist/internal/discovery/reminders.js +65 -0
- package/dist/internal/discovery/subagent.js +1 -0
- package/dist/internal/distribution.d.ts +5 -0
- package/dist/internal/distribution.d.ts.map +1 -1
- package/dist/internal/distribution.js +17 -0
- package/dist/internal/framework-storage-selection.d.ts +14 -3
- package/dist/internal/framework-storage-selection.d.ts.map +1 -1
- package/dist/internal/framework-storage-selection.js +36 -6
- package/dist/internal/guest-network.d.ts +4 -10
- package/dist/internal/guest-network.d.ts.map +1 -1
- package/dist/internal/guest-network.js +44 -26
- package/dist/internal/hosted-admission-adapter.d.ts +2 -0
- package/dist/internal/hosted-admission-adapter.d.ts.map +1 -1
- package/dist/internal/hosted-catch-protocol.d.ts +51 -0
- package/dist/internal/hosted-catch-protocol.d.ts.map +1 -0
- package/dist/internal/hosted-catch-protocol.js +103 -0
- package/dist/internal/hosted-catch.d.ts +40 -0
- package/dist/internal/hosted-catch.d.ts.map +1 -0
- package/dist/internal/hosted-catch.js +149 -0
- package/dist/internal/hosted-delivery-protocol.d.ts +89 -0
- package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
- package/dist/internal/hosted-delivery-protocol.js +309 -0
- package/dist/internal/hosted-delivery.d.ts +20 -1
- package/dist/internal/hosted-delivery.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.js +179 -36
- package/dist/internal/hosted-execution-diag.d.ts +4 -1
- package/dist/internal/hosted-execution-diag.d.ts.map +1 -1
- package/dist/internal/hosted-execution-diag.js +13 -4
- package/dist/internal/hosted-execution-flush.d.ts +3 -0
- package/dist/internal/hosted-execution-flush.d.ts.map +1 -1
- package/dist/internal/hosted-execution-flush.js +2 -4
- package/dist/internal/http-control-plane-session.d.ts +30 -0
- package/dist/internal/http-control-plane-session.d.ts.map +1 -0
- package/dist/internal/http-control-plane-session.js +83 -0
- package/dist/internal/legacy-command-guard.d.ts +22 -0
- package/dist/internal/legacy-command-guard.d.ts.map +1 -0
- package/dist/internal/legacy-command-guard.js +51 -0
- package/dist/internal/local-control-plane.d.ts +18 -2
- package/dist/internal/local-control-plane.d.ts.map +1 -1
- package/dist/internal/local-control-plane.js +199 -17
- package/dist/internal/platform-timers.d.ts +7 -0
- package/dist/internal/platform-timers.d.ts.map +1 -1
- package/dist/internal/platform-timers.js +139 -0
- package/dist/internal/reminder-control-plane-protocol.d.ts +189 -0
- package/dist/internal/reminder-control-plane-protocol.d.ts.map +1 -0
- package/dist/internal/reminder-control-plane-protocol.js +251 -0
- package/dist/internal/reminder-runner.d.ts +56 -6
- package/dist/internal/reminder-runner.d.ts.map +1 -1
- package/dist/internal/reminder-runner.js +372 -57
- package/dist/internal/reminder-schedule.d.ts +5 -2
- package/dist/internal/reminder-schedule.d.ts.map +1 -1
- package/dist/internal/reminder-schedule.js +8 -6
- package/dist/internal/reminder-store.d.ts +24 -7
- package/dist/internal/reminder-store.d.ts.map +1 -1
- package/dist/internal/reminder-store.js +6 -5
- package/dist/internal/request-error-status.d.ts +2 -0
- package/dist/internal/request-error-status.d.ts.map +1 -1
- package/dist/internal/request-error-status.js +22 -3
- package/dist/internal/resolve-prod-target.d.ts +2 -0
- package/dist/internal/resolve-prod-target.d.ts.map +1 -1
- package/dist/internal/resolve-prod-target.js +13 -0
- package/dist/internal/scm/pr-url.d.ts +40 -0
- package/dist/internal/scm/pr-url.d.ts.map +1 -1
- package/dist/internal/scm/pr-url.js +93 -14
- package/dist/internal/sdk-runner.d.ts.map +1 -1
- package/dist/internal/sdk-runner.js +4 -3
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +118 -77
- package/dist/internal/session-engine.d.ts +6 -6
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +100 -67
- package/dist/playground/assets/{index-BaQzjaNK.js → index-BMDqAeXu.js} +34 -34
- package/dist/playground/assets/index-LUgJoWdL.css +1 -0
- package/dist/playground/index.html +2 -2
- package/dist/reminders.d.ts +24 -5
- package/dist/reminders.d.ts.map +1 -1
- package/dist/reminders.js +28 -5
- package/dist/storage-backends/cursor-hosted.d.ts +6 -0
- package/dist/storage-backends/cursor-hosted.d.ts.map +1 -1
- package/dist/storage-backends/cursor-hosted.js +29 -1
- package/dist/types.d.ts +122 -25
- package/dist/types.d.ts.map +1 -1
- package/docs/README.md +4 -0
- package/docs/deployment.md +7 -2
- package/docs/evals.md +3 -2
- package/docs/guides/cloud-agents.md +4 -3
- package/docs/guides/github.md +2 -1
- package/docs/guides/grokbot-agents.md +2 -2
- package/docs/guides/improve.md +96 -0
- package/docs/guides/opentelemetry.md +3 -4
- package/docs/guides/slack.md +2 -1
- package/docs/reference/agent-config.md +5 -2
- package/docs/reference/channels.md +11 -19
- package/docs/reference/cli.md +23 -13
- package/docs/reference/connections.md +2 -1
- package/docs/reference/extensions.md +2 -0
- package/docs/scaffolding-agents.md +2 -1
- package/docs/troubleshooting.md +1 -1
- package/package.json +10 -3
- package/skills/create-agent/SKILL.md +1 -1
- package/skills/debug/SKILL.md +1 -1
- package/skills/evals/SKILL.md +1 -1
- package/skills/framework-map/SKILL.md +4 -2
- package/skills/github/SKILL.md +1 -1
- package/skills/otel/SKILL.md +3 -3
- package/src/bin/agent-serve.ts +28 -11
- package/src/channels/bitbucket/types.ts +2 -4
- package/src/channels/deployments/types.ts +5 -8
- package/src/channels/github/github-channel.ts +8 -8
- package/src/channels/github/types.ts +7 -4
- package/src/channels/gitlab/types.ts +2 -5
- package/src/channels/origin/origin-channel.ts +29 -13
- package/src/channels/origin/types.ts +7 -3
- package/src/channels/slack/defaults.ts +3 -0
- package/src/channels/slack/dispatch.ts +1 -0
- package/src/channels/slack/live-delivery.ts +53 -12
- package/src/channels/slack/types.ts +4 -3
- package/src/channels.ts +157 -10
- package/src/connections.ts +2 -1
- package/src/extensions/improve/extension.ts +70 -0
- package/src/extensions/improve/skills/yourself.ts +50 -0
- package/src/index.ts +6 -3
- package/src/internal/builtin-tools/artifacts.ts +2 -3
- package/src/internal/channel-route-dispatch.ts +66 -0
- package/src/internal/channel-state.ts +96 -0
- package/src/internal/cli-ax.ts +110 -1
- package/src/internal/cli-cursor.ts +4 -1
- package/src/internal/cli-deploy.ts +80 -22
- package/src/internal/cli-mcp-oauth.ts +18 -0
- package/src/internal/cli-mcp.ts +11 -0
- package/src/internal/cli-slack.ts +15 -2
- package/src/internal/cursor/backend-client.ts +90 -2
- package/src/internal/cursor/credentials.ts +35 -7
- package/src/internal/deploy-client.ts +70 -0
- package/src/internal/deploy-manifest.ts +131 -12
- package/src/internal/describe-error.ts +28 -0
- package/src/internal/discovery/agent.ts +1 -0
- package/src/internal/discovery/info.ts +6 -0
- package/src/internal/discovery/modules.ts +2 -4
- package/src/internal/discovery/project.ts +3 -0
- package/src/internal/discovery/reminders.ts +65 -0
- package/src/internal/discovery/subagent.ts +1 -0
- package/src/internal/distribution.ts +20 -0
- package/src/internal/framework-storage-selection.ts +43 -6
- package/src/internal/guest-network.ts +46 -29
- package/src/internal/hosted-admission-adapter.ts +2 -0
- package/src/internal/hosted-catch-protocol.ts +130 -0
- package/src/internal/hosted-catch.ts +192 -0
- package/src/internal/hosted-delivery-protocol.ts +483 -0
- package/src/internal/hosted-delivery.ts +303 -43
- package/src/internal/hosted-execution-diag.ts +21 -3
- package/src/internal/hosted-execution-flush.ts +6 -3
- package/src/internal/http-control-plane-session.ts +104 -0
- package/src/internal/legacy-command-guard.ts +59 -0
- package/src/internal/local-control-plane.ts +281 -22
- package/src/internal/platform-timers.ts +191 -0
- package/src/internal/reminder-control-plane-protocol.ts +512 -0
- package/src/internal/reminder-runner.ts +481 -57
- package/src/internal/reminder-schedule.ts +11 -6
- package/src/internal/reminder-store.ts +27 -7
- package/src/internal/request-error-status.ts +27 -3
- package/src/internal/resolve-prod-target.ts +15 -0
- package/src/internal/scm/pr-url.ts +167 -20
- package/src/internal/sdk-runner.ts +2 -1
- package/src/internal/server.ts +151 -88
- package/src/internal/session-engine.ts +146 -83
- package/src/reminders.ts +35 -4
- package/src/storage-backends/cursor-hosted.ts +40 -1
- package/src/types.ts +134 -26
- package/dist/docs/assets/chunks/@localSearchIndexroot.CJxMklAy.js +0 -1
- package/dist/docs/assets/guides_cloud-agents.md.DS8RIjwx.js +0 -9
- package/dist/docs/assets/index.md.BW_6tOgR.js +0 -5
- package/dist/docs/assets/skills_framework-map.md.haibFyoB.js +0 -1
- package/dist/docs/assets/troubleshooting.md.Cus_YZga.js +0 -1
- package/dist/playground/assets/index-CceqnLTX.css +0 -1
- /package/dist/docs/assets/{evals.md.CbMoebP1.lean.js → evals.md.C1ekS3k2.lean.js} +0 -0
- /package/dist/docs/assets/{guides_github.md.c0gdGJ-D.lean.js → guides_github.md.BH33UEBJ.lean.js} +0 -0
- /package/dist/docs/assets/{guides_grokbot-agents.md.DVqdhBKb.lean.js → guides_grokbot-agents.md.DyV-WArv.lean.js} +0 -0
- /package/dist/docs/assets/{index.md.BW_6tOgR.lean.js → index.md.BjH1w2ZW.lean.js} +0 -0
- /package/dist/docs/assets/{reference_agent-config.md.CHNpiyp4.lean.js → reference_agent-config.md.CvoL6pof.lean.js} +0 -0
- /package/dist/docs/assets/{reference_connections.md.Di6jJAXF.lean.js → reference_connections.md.BojkC6c5.lean.js} +0 -0
- /package/dist/docs/assets/{reference_extensions.md.CGmMLblt.lean.js → reference_extensions.md.CPWt00ds.lean.js} +0 -0
- /package/dist/docs/assets/{scaffolding-agents.md.em43xlY1.lean.js → scaffolding-agents.md.Kctn3OVb.lean.js} +0 -0
- /package/dist/docs/assets/{skills_create-agent.md.BVoWPcan.lean.js → skills_create-agent.md.Q3h6Je-e.lean.js} +0 -0
- /package/dist/docs/assets/{skills_evals.md.723kpUmA.lean.js → skills_evals.md.BhovOvrl.lean.js} +0 -0
- /package/dist/docs/assets/{skills_github.md.D0JahM8c.lean.js → skills_github.md.hgFX_oKY.lean.js} +0 -0
- /package/dist/docs/assets/{skills_otel.md.CqhobH3B.lean.js → skills_otel.md.B5Ddv1xH.lean.js} +0 -0
- /package/dist/docs/assets/{troubleshooting.md.Cus_YZga.lean.js → troubleshooting.md.CYEAO9bM.lean.js} +0 -0
package/dist/index.js
CHANGED
|
@@ -49,12 +49,13 @@ export { InvalidAsOfError, VacuousTimeArgsError, } from "./internal/as-of.js";
|
|
|
49
49
|
export { formatDiagnostics, hasErrorDiagnostics, isAgentProjectDir, loadAgentProject, loadAgentProjects, projectInfo, resolveAgentMounts, } from "./internal/discovery.js";
|
|
50
50
|
export { collectGitHubTriggerTargets, collectOriginTriggerTargets, handleAgentServeTrigger, } from "./internal/handleAgentServeTrigger.js";
|
|
51
51
|
export { MCP_CHANNEL_ID, MCP_ENDPOINT_PATH, mcpEndpointToolNames, TOOL_MCP_ENDPOINT_PATH, } from "./internal/mcp-endpoint.js";
|
|
52
|
-
export { ReminderValidationError, UnknownReminderError, } from "./internal/reminder-runner.js";
|
|
52
|
+
export { REMINDER_ARGS_MAX_BYTES, ReminderValidationError, rejectAnonymousReminderHandlers, UnknownReminderError, } from "./internal/reminder-runner.js";
|
|
53
53
|
export { SessionBusyError, ToolInputError, ToolNotDirectlyCallableError, UnknownChannelError, UnknownSessionError, UnknownToolError, } from "./internal/session-engine.js";
|
|
54
54
|
export { createMemoryKv, memoryCasTable } from "./kv/memory-kv.js";
|
|
55
55
|
export { agentStoreMemoryBackend, fileMemoryBackend, memoryHook, } from "./memory.js";
|
|
56
56
|
export { defineOtel, resolveOtelDefinition } from "./otel.js";
|
|
57
57
|
export { prompt } from "./prompt.js";
|
|
58
|
+
export { defineReminder } from "./reminders.js";
|
|
58
59
|
export { defineResult } from "./result.js";
|
|
59
60
|
export { defineSchedule } from "./schedules.js";
|
|
60
61
|
export { defineSkill } from "./skills.js";
|
|
@@ -63,9 +64,7 @@ export { defineTool } from "./tools.js";
|
|
|
63
64
|
export { cursorAccountServersHasMixedWildcard, DEFAULT_MODEL, DIRECT_TOOL_CALL_CHANNEL_ID, isCursorAccountTransport, isPeerConnectionTransport, isSymbolicConnectionTransport, isToolEffect, MAX_RUNNING_TURNS_LIMIT, normalizeConnectionEffects, normalizeConnectionTools, normalizeCursorAccountServers, supportsKvCas, } from "./types.js";
|
|
64
65
|
/**
|
|
65
66
|
* Runtime config for an agent — authored at `agent/agent.ts` (the root
|
|
66
|
-
* agent) or `agent/subagents/<id>/agent.ts` (a subagent).
|
|
67
|
-
* `architecture: "v2"` to deploy onto the v2 control plane; omitted
|
|
68
|
-
* channel continuation then inherits kind `/v2` defaults.
|
|
67
|
+
* agent) or `agent/subagents/<id>/agent.ts` (a subagent).
|
|
69
68
|
*/
|
|
70
69
|
export function defineAgent(config) {
|
|
71
70
|
return brandDefinition("agent", config);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../../src/internal/builtin-tools/artifacts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEtE,eAAO,MAAM,sBAAsB,iBAAiB,CAAC;AA0BrD,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../../src/internal/builtin-tools/artifacts.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEtE,eAAO,MAAM,sBAAsB,iBAAiB,CAAC;AA0BrD,wBAAgB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,cAAc,CAmCvE"}
|
|
@@ -32,7 +32,7 @@ function kindVariant(name, schema) {
|
|
|
32
32
|
.trim()
|
|
33
33
|
.min(1)
|
|
34
34
|
.optional()
|
|
35
|
-
.describe("Stable
|
|
35
|
+
.describe("Stable key, unique across kinds. Reusing it replaces that record instead of adding a new one."),
|
|
36
36
|
});
|
|
37
37
|
}
|
|
38
38
|
export function tagArtifactTool(config) {
|
|
@@ -44,10 +44,9 @@ export function tagArtifactTool(config) {
|
|
|
44
44
|
throw new Error("tag_artifact requires at least one declared artifact kind");
|
|
45
45
|
}
|
|
46
46
|
const description = [
|
|
47
|
-
"Tag a
|
|
47
|
+
"Tag a finished output as an artifact. Artifacts persist across sessions and are listed for the people supervising this agent.",
|
|
48
48
|
"Kinds:",
|
|
49
49
|
...kinds.map(([name, kind]) => `- ${name}: ${kind.description}`),
|
|
50
|
-
"Same `key` upserts: tagging it again updates that record — use a stable key when re-tagging the same underlying thing (e.g. the same PR URL).",
|
|
51
50
|
].join("\n");
|
|
52
51
|
return defineTool({
|
|
53
52
|
description,
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ChannelHandlerArgs, ChannelRoute } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Run one authored channel route: validate the declared Zod query / body
|
|
4
|
+
* schemas onto `handlerArgs`, then call the handler. Shared by the local
|
|
5
|
+
* router mount and hosted catch replay so a caught request meets exactly
|
|
6
|
+
* the same schema gate as a direct one.
|
|
7
|
+
*/
|
|
8
|
+
export declare function invokeChannelRoute(input: {
|
|
9
|
+
route: ChannelRoute;
|
|
10
|
+
request: Request;
|
|
11
|
+
handlerArgs: ChannelHandlerArgs;
|
|
12
|
+
}): Promise<Response>;
|
|
13
|
+
//# sourceMappingURL=channel-route-dispatch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel-route-dispatch.d.ts","sourceRoot":"","sources":["../../src/internal/channel-route-dispatch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIpE;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,KAAK,EAAE;IAC9C,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,kBAAkB,CAAC;CACjC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAmDpB"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
10
|
+
import { jsonResponse } from "./http-channel.js";
|
|
11
|
+
import { validateToolInput } from "./json-schema.js";
|
|
12
|
+
/**
|
|
13
|
+
* Run one authored channel route: validate the declared Zod query / body
|
|
14
|
+
* schemas onto `handlerArgs`, then call the handler. Shared by the local
|
|
15
|
+
* router mount and hosted catch replay so a caught request meets exactly
|
|
16
|
+
* the same schema gate as a direct one.
|
|
17
|
+
*/
|
|
18
|
+
export function invokeChannelRoute(input) {
|
|
19
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
20
|
+
const { route, handlerArgs } = input;
|
|
21
|
+
let request = input.request;
|
|
22
|
+
if (route.querySchema !== undefined) {
|
|
23
|
+
const rawQuery = Object.fromEntries(new URL(request.url).searchParams.entries());
|
|
24
|
+
const queryValidation = validateToolInput(route.querySchema, rawQuery);
|
|
25
|
+
if (!queryValidation.ok) {
|
|
26
|
+
return jsonResponse({ error: queryValidation.message }, { status: 400 });
|
|
27
|
+
}
|
|
28
|
+
handlerArgs.query = queryValidation.value;
|
|
29
|
+
}
|
|
30
|
+
if (route.bodySchema !== undefined) {
|
|
31
|
+
// Buffer once so handlers that need the raw body (e.g. GitHub HMAC) can
|
|
32
|
+
// still read `request.text()` / `request.json()`.
|
|
33
|
+
let bodyText;
|
|
34
|
+
try {
|
|
35
|
+
bodyText = yield request.text();
|
|
36
|
+
}
|
|
37
|
+
catch (_a) {
|
|
38
|
+
return jsonResponse({ error: "Failed to read request body" }, { status: 400 });
|
|
39
|
+
}
|
|
40
|
+
let rawBody;
|
|
41
|
+
try {
|
|
42
|
+
rawBody = bodyText === "" ? {} : JSON.parse(bodyText);
|
|
43
|
+
}
|
|
44
|
+
catch (_b) {
|
|
45
|
+
return jsonResponse({ error: "Request body must be valid JSON" }, { status: 400 });
|
|
46
|
+
}
|
|
47
|
+
const bodyValidation = validateToolInput(route.bodySchema, rawBody);
|
|
48
|
+
if (!bodyValidation.ok) {
|
|
49
|
+
return jsonResponse({ error: bodyValidation.message }, { status: 400 });
|
|
50
|
+
}
|
|
51
|
+
handlerArgs.body = bodyValidation.value;
|
|
52
|
+
request = new Request(request.url, {
|
|
53
|
+
method: request.method,
|
|
54
|
+
headers: request.headers,
|
|
55
|
+
body: bodyText === "" ? undefined : bodyText,
|
|
56
|
+
// node: undici / fetch may require duplex for streamed bodies;
|
|
57
|
+
// a string body does not.
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
return route.handler(request, handlerArgs);
|
|
61
|
+
});
|
|
62
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { JsonValue } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Shallow-merge a wake patch into durable channel state. Null / undefined
|
|
4
|
+
* patch values leave the existing key alone so sticky fields survive.
|
|
5
|
+
*/
|
|
6
|
+
export declare function mergeChannelStateSkipNull(current: JsonValue | undefined, patch: JsonValue | undefined): JsonValue | undefined;
|
|
7
|
+
/**
|
|
8
|
+
* Apply handler mutations made against a turn snapshot without reverting
|
|
9
|
+
* unchanged fields refreshed by a later delivery. At a changed path, objects
|
|
10
|
+
* merge recursively, arrays and scalars replace, and deletions win.
|
|
11
|
+
*/
|
|
12
|
+
export declare function mergeChannelStateMutation(args: {
|
|
13
|
+
current: JsonValue | undefined;
|
|
14
|
+
before: JsonValue;
|
|
15
|
+
after: JsonValue;
|
|
16
|
+
}): JsonValue | undefined;
|
|
17
|
+
//# sourceMappingURL=channel-state.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"channel-state.d.ts","sourceRoot":"","sources":["../../src/internal/channel-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAW7C;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,SAAS,GAAG,SAAS,EAC9B,KAAK,EAAE,SAAS,GAAG,SAAS,GAC3B,SAAS,GAAG,SAAS,CAgBvB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE;IAC9C,OAAO,EAAE,SAAS,GAAG,SAAS,CAAC;IAC/B,MAAM,EAAE,SAAS,CAAC;IAClB,KAAK,EAAE,SAAS,CAAC;CAClB,GAAG,SAAS,GAAG,SAAS,CAiDxB"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { isDeepStrictEqual } from "node:util";
|
|
2
|
+
function asRecord(value) {
|
|
3
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
4
|
+
return undefined;
|
|
5
|
+
}
|
|
6
|
+
return value;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Shallow-merge a wake patch into durable channel state. Null / undefined
|
|
10
|
+
* patch values leave the existing key alone so sticky fields survive.
|
|
11
|
+
*/
|
|
12
|
+
export function mergeChannelStateSkipNull(current, patch) {
|
|
13
|
+
if (patch === undefined) {
|
|
14
|
+
return current;
|
|
15
|
+
}
|
|
16
|
+
const currentRecord = asRecord(current);
|
|
17
|
+
const patchRecord = asRecord(patch);
|
|
18
|
+
if (currentRecord === undefined || patchRecord === undefined) {
|
|
19
|
+
return structuredClone(patch);
|
|
20
|
+
}
|
|
21
|
+
const merged = Object.assign({}, currentRecord);
|
|
22
|
+
for (const [key, value] of Object.entries(patchRecord)) {
|
|
23
|
+
if (value !== null && value !== undefined) {
|
|
24
|
+
merged[key] = value;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return merged;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Apply handler mutations made against a turn snapshot without reverting
|
|
31
|
+
* unchanged fields refreshed by a later delivery. At a changed path, objects
|
|
32
|
+
* merge recursively, arrays and scalars replace, and deletions win.
|
|
33
|
+
*/
|
|
34
|
+
export function mergeChannelStateMutation(args) {
|
|
35
|
+
const { current, before, after } = args;
|
|
36
|
+
if (isDeepStrictEqual(before, after)) {
|
|
37
|
+
return current;
|
|
38
|
+
}
|
|
39
|
+
const currentRecord = asRecord(current);
|
|
40
|
+
const beforeRecord = asRecord(before);
|
|
41
|
+
const afterRecord = asRecord(after);
|
|
42
|
+
if (currentRecord === undefined ||
|
|
43
|
+
beforeRecord === undefined ||
|
|
44
|
+
afterRecord === undefined) {
|
|
45
|
+
return structuredClone(after);
|
|
46
|
+
}
|
|
47
|
+
const merged = structuredClone(currentRecord);
|
|
48
|
+
const keys = new Set([
|
|
49
|
+
...Object.keys(beforeRecord),
|
|
50
|
+
...Object.keys(afterRecord),
|
|
51
|
+
]);
|
|
52
|
+
for (const key of keys) {
|
|
53
|
+
const hadBefore = Object.hasOwn(beforeRecord, key);
|
|
54
|
+
const hasAfter = Object.hasOwn(afterRecord, key);
|
|
55
|
+
if (hadBefore &&
|
|
56
|
+
hasAfter &&
|
|
57
|
+
isDeepStrictEqual(beforeRecord[key], afterRecord[key])) {
|
|
58
|
+
continue;
|
|
59
|
+
}
|
|
60
|
+
if (!hasAfter) {
|
|
61
|
+
delete merged[key];
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
const currentValue = merged[key];
|
|
65
|
+
const afterValue = afterRecord[key];
|
|
66
|
+
merged[key] =
|
|
67
|
+
hadBefore ||
|
|
68
|
+
(asRecord(currentValue) !== undefined &&
|
|
69
|
+
asRecord(afterValue) !== undefined)
|
|
70
|
+
? mergeChannelStateMutation({
|
|
71
|
+
current: currentValue,
|
|
72
|
+
before: hadBefore ? beforeRecord[key] : {},
|
|
73
|
+
after: afterValue,
|
|
74
|
+
})
|
|
75
|
+
: structuredClone(afterValue);
|
|
76
|
+
}
|
|
77
|
+
return merged;
|
|
78
|
+
}
|
|
@@ -113,6 +113,13 @@ export interface AxCliOptions {
|
|
|
113
113
|
resume?: boolean;
|
|
114
114
|
/** Abort signal (tests / programmatic stop of `playground` proxy). */
|
|
115
115
|
signal?: AbortSignal;
|
|
116
|
+
/**
|
|
117
|
+
* `run --prod` / `session --prod --message`: hosted v2 session start on
|
|
118
|
+
* the agentsdk control plane. `--dry-run` marks the turn non-mutating;
|
|
119
|
+
* `--as-of` freezes the session clock at a timezone-bearing instant.
|
|
120
|
+
*/
|
|
121
|
+
dryRun?: boolean;
|
|
122
|
+
asOf?: string;
|
|
116
123
|
}
|
|
117
124
|
export interface ResolvedAgentTarget {
|
|
118
125
|
agentUrl: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-ax.d.ts","sourceRoot":"","sources":["../../src/internal/cli-ax.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EACV,mBAAmB,EAIpB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"cli-ax.d.ts","sourceRoot":"","sources":["../../src/internal/cli-ax.ts"],"names":[],"mappings":"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"}
|
package/dist/internal/cli-ax.js
CHANGED
|
@@ -24,12 +24,14 @@ import { lookupSessionContinuation, runChat } from "./chat-client.js";
|
|
|
24
24
|
import { ensureCursorLogin } from "./cli-cursor.js";
|
|
25
25
|
import { resolveDeployAuth } from "./cli-deploy.js";
|
|
26
26
|
import { resolveApiKey } from "./cursor/credentials.js";
|
|
27
|
+
import { DeployApiError } from "./deploy-client.js";
|
|
27
28
|
import { CLI_COMMAND_NAME, PACKAGE_NAME } from "./distribution.js";
|
|
28
29
|
import { discoverEvals, filterDiscoveredEvals, runDiscoveredEvals, } from "./eval-runner.js";
|
|
29
30
|
import { cancelRemoteEvalRun, getRemoteEvalRun, listRemoteEvalRuns, listRemoteEvals, pollRemoteEvalRun, RemoteEvalError, snapshotToEvalRunResults, startRemoteEvalRun, } from "./evals-client.js";
|
|
30
31
|
import { runTemplateInit } from "./init-interview.js";
|
|
31
32
|
import { checkInitTarget, formatInitNextSteps, formatInitScaffoldSummary, initNextCommands, initProject, installScaffoldDependencies, linkCliOntoPath, printInitGuide, resolveTemplate, } from "./init-project.js";
|
|
32
33
|
import { offerInstallCursorSkills } from "./install-cursor-skills.js";
|
|
34
|
+
import { rejectV2ForLegacyCommand } from "./legacy-command-guard.js";
|
|
33
35
|
import { runLogsTail, sanitizeCustomerError } from "./logs-client.js";
|
|
34
36
|
import { mapPool } from "./map-pool.js";
|
|
35
37
|
import { openBrowser } from "./open-browser.js";
|
|
@@ -377,6 +379,15 @@ export function cmdChat(options) {
|
|
|
377
379
|
export function cmdRun(options) {
|
|
378
380
|
return __awaiter(this, void 0, void 0, function* () {
|
|
379
381
|
var _a, _b, _c;
|
|
382
|
+
// Only a v2-shaped request tries the control plane; every v1 `run --prod`
|
|
383
|
+
// form (multi-turn, continuation token, local session id, --url) keeps its
|
|
384
|
+
// engine-alias path untouched.
|
|
385
|
+
if (options.prod === true && hostedSessionRejection(options) === undefined) {
|
|
386
|
+
const started = yield cmdHostedSession(options);
|
|
387
|
+
if (started !== "fallback") {
|
|
388
|
+
return started;
|
|
389
|
+
}
|
|
390
|
+
}
|
|
380
391
|
const messages = (_a = options.messages) !== null && _a !== void 0 ? _a : [];
|
|
381
392
|
if (messages.length === 0) {
|
|
382
393
|
die("Provide --message (repeatable) or --messages-file");
|
|
@@ -472,6 +483,73 @@ export function cmdRun(options) {
|
|
|
472
483
|
}
|
|
473
484
|
});
|
|
474
485
|
}
|
|
486
|
+
const HOSTED_SESSION_ID_RE = /^ses_[a-f0-9]{24}$/;
|
|
487
|
+
/**
|
|
488
|
+
* Hosted v2 session start: POST the agentsdk control plane, which hands the
|
|
489
|
+
* wake to Temporal (no resident engine, no `/engine/*` alias). `--session
|
|
490
|
+
* ses_…` resumes that exact session; there is no continuation token on
|
|
491
|
+
* this path. A 404 means the slug is not a v2 control-plane deployment, so
|
|
492
|
+
* `run --prod` falls back to the v1 engine alias.
|
|
493
|
+
*/
|
|
494
|
+
/** Why these options cannot be a hosted v2 session start, if they cannot. */
|
|
495
|
+
function hostedSessionRejection(options) {
|
|
496
|
+
var _a;
|
|
497
|
+
var _b;
|
|
498
|
+
if (options.url !== undefined) {
|
|
499
|
+
return "--prod session start talks to the agentsdk control plane; do not pass --url";
|
|
500
|
+
}
|
|
501
|
+
const messages = (_b = options.messages) !== null && _b !== void 0 ? _b : [];
|
|
502
|
+
if (messages.length !== 1 || ((_a = messages[0]) === null || _a === void 0 ? void 0 : _a.trim()) === "") {
|
|
503
|
+
return "Provide exactly one --message (the wake). Multi-turn runs are local-only.";
|
|
504
|
+
}
|
|
505
|
+
if (trimNonEmpty(options.continuationToken) !== undefined) {
|
|
506
|
+
return "--continuation-token is not a hosted v2 identity; pass --session ses_… to resume a session";
|
|
507
|
+
}
|
|
508
|
+
const sessionId = trimNonEmpty(options.sessionId);
|
|
509
|
+
if (sessionId !== undefined && !HOSTED_SESSION_ID_RE.test(sessionId)) {
|
|
510
|
+
return `--session must be a hosted session id (ses_…), got ${sessionId}`;
|
|
511
|
+
}
|
|
512
|
+
return undefined;
|
|
513
|
+
}
|
|
514
|
+
function cmdHostedSession(options) {
|
|
515
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
516
|
+
var _a;
|
|
517
|
+
const rejection = hostedSessionRejection(options);
|
|
518
|
+
if (rejection !== undefined) {
|
|
519
|
+
die(rejection);
|
|
520
|
+
}
|
|
521
|
+
const messages = (_a = options.messages) !== null && _a !== void 0 ? _a : [];
|
|
522
|
+
const sessionId = trimNonEmpty(options.sessionId);
|
|
523
|
+
const auth = yield resolveDeployAuth({
|
|
524
|
+
team: options.team,
|
|
525
|
+
apiKey: options.apiKey,
|
|
526
|
+
fetchImpl: options.fetchImpl,
|
|
527
|
+
});
|
|
528
|
+
if (typeof auth === "number") {
|
|
529
|
+
return auth;
|
|
530
|
+
}
|
|
531
|
+
const slug = resolveProdSlug(options);
|
|
532
|
+
try {
|
|
533
|
+
const accepted = yield auth.client.startSession({
|
|
534
|
+
teamId: auth.teamId,
|
|
535
|
+
slug,
|
|
536
|
+
message: messages[0].trim(),
|
|
537
|
+
sessionId,
|
|
538
|
+
dryRun: options.dryRun,
|
|
539
|
+
asOf: options.asOf,
|
|
540
|
+
});
|
|
541
|
+
console.log(JSON.stringify(accepted, null, 2));
|
|
542
|
+
return 0;
|
|
543
|
+
}
|
|
544
|
+
catch (error) {
|
|
545
|
+
if (error instanceof DeployApiError && error.status === 404) {
|
|
546
|
+
return "fallback";
|
|
547
|
+
}
|
|
548
|
+
process.stderr.write(`${error instanceof Error ? error.message : String(error)}\n`);
|
|
549
|
+
return 1;
|
|
550
|
+
}
|
|
551
|
+
});
|
|
552
|
+
}
|
|
475
553
|
/**
|
|
476
554
|
* `agent-sdk call <tool>` — deterministic tool invocation over
|
|
477
555
|
* `POST /v1/tools/:toolName` (ephemeral local server unless --url).
|
|
@@ -1301,6 +1379,11 @@ export function cmdLogs(options) {
|
|
|
1301
1379
|
if (typeof auth === "number") {
|
|
1302
1380
|
return auth;
|
|
1303
1381
|
}
|
|
1382
|
+
yield rejectV2ForLegacyCommand({
|
|
1383
|
+
client: auth.client,
|
|
1384
|
+
teamId: auth.teamId,
|
|
1385
|
+
slug,
|
|
1386
|
+
});
|
|
1304
1387
|
yield runLogsTail({
|
|
1305
1388
|
prod: true,
|
|
1306
1389
|
dir: options.dir,
|
|
@@ -1323,6 +1406,7 @@ export function cmdLogs(options) {
|
|
|
1323
1406
|
apiKey: options.apiKey,
|
|
1324
1407
|
fetchImpl: options.fetchImpl,
|
|
1325
1408
|
err: () => { },
|
|
1409
|
+
skipLegacyArchitectureCheck: true,
|
|
1326
1410
|
});
|
|
1327
1411
|
return { agentUrl: target.agentUrl, headers: target.headers };
|
|
1328
1412
|
}),
|
|
@@ -1428,8 +1512,22 @@ export function cmdSessions(options) {
|
|
|
1428
1512
|
*/
|
|
1429
1513
|
export function cmdSession(sessionId, options) {
|
|
1430
1514
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1515
|
+
var _a;
|
|
1516
|
+
var _b, _c;
|
|
1517
|
+
if (options.prod === true && ((_b = (_a = options.messages) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) > 0) {
|
|
1518
|
+
// `session --prod [ses_…] --message` is the same hosted start as
|
|
1519
|
+
// `run --prod`, with the positional id as the session to resume. Unlike
|
|
1520
|
+
// `run`, a 404 is an error here: this form is explicitly v2.
|
|
1521
|
+
const started = yield cmdHostedSession(Object.assign(Object.assign({}, options), { sessionId: (_c = trimNonEmpty(sessionId)) !== null && _c !== void 0 ? _c : options.sessionId }));
|
|
1522
|
+
if (started === "fallback") {
|
|
1523
|
+
process.stderr.write(`Hosted session start returned 404 for slug ${resolveProdSlug(options)}: deploy a running AgentSDK v2 agent, or use \`${CLI_COMMAND_NAME} run --prod\` (falls back to the v1 engine).\n`);
|
|
1524
|
+
return 1;
|
|
1525
|
+
}
|
|
1526
|
+
return started;
|
|
1527
|
+
}
|
|
1431
1528
|
if (sessionId === undefined || sessionId.trim() === "") {
|
|
1432
|
-
process.stderr.write(`Usage: ${CLI_COMMAND_NAME} session <sessionId> [--url | --prod] [--json | --text | --events] [--out <file.ndjson>]\n`
|
|
1529
|
+
process.stderr.write(`Usage: ${CLI_COMMAND_NAME} session <sessionId> [--url | --prod] [--json | --text | --events] [--out <file.ndjson>]\n` +
|
|
1530
|
+
` or: ${CLI_COMMAND_NAME} session --prod [<sessionId>] --slug <slug> --message "…" [--dry-run] [--as-of <instant>]\n`);
|
|
1433
1531
|
return 2;
|
|
1434
1532
|
}
|
|
1435
1533
|
if (options.rawEvents === true && options.json === true) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-cursor.d.ts","sourceRoot":"","sources":["../../src/internal/cli-cursor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"cli-cursor.d.ts","sourceRoot":"","sources":["../../src/internal/cli-cursor.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA4BH,MAAM,WAAW,gBAAgB;IAC/B,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAuGzE;AAED;;;;;;;;;GASG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iBAAiB;IACjB,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CACnD,GACL,OAAO,CAAC,MAAM,CAAC,CAgBjB;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAWjD;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAuC1E"}
|
|
@@ -204,6 +204,8 @@ function describeSource(source) {
|
|
|
204
204
|
return "CURSOR_API_KEY environment variable";
|
|
205
205
|
case "file":
|
|
206
206
|
return "CURSOR_API_KEY_FILE (task bind)";
|
|
207
|
+
case "service-account":
|
|
208
|
+
return "CURSOR_SERVICE_ACCOUNT_KEY environment variable";
|
|
207
209
|
case "login":
|
|
208
210
|
return `stored login (${credentialsFilePath()})`;
|
|
209
211
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-deploy.d.ts","sourceRoot":"","sources":["../../src/internal/cli-deploy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAiBH,OAAO,EAKL,sBAAsB,EAevB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,SAAS,EAAwB,MAAM,oBAAoB,CAAC;AAE1E,OAAO,EACL,KAAK,aAAa,EAMnB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli-deploy.d.ts","sourceRoot":"","sources":["../../src/internal/cli-deploy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAiBH,OAAO,EAKL,sBAAsB,EAevB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,SAAS,EAAwB,MAAM,oBAAoB,CAAC;AAE1E,OAAO,EACL,KAAK,aAAa,EAMnB,MAAM,gBAAgB,CAAC;AAoBxB,8EAA8E;AAC9E,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC;AAEzC;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAAG,CAChC,MAAM,EAAE,SAAS,YAAY,EAAE,KAC5B,OAAO,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,CAAC;AAEpC,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,6DAA6D;IAC7D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kBAAkB;IAClB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,iFAAiF;IACjF,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,8DAA8D;IAC9D,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,qEAAqE;IACrE,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,2EAA2E;IAC3E,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,+EAA+E;AAC/E,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,cAAc,GAAG;IACtD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACtC,CAAC;AAeF,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,gEAAgE;IAChE,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,sBAAsB,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,iFAAiF;IACjF,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,kBAAkB,GAAG,MAAM,CAAC,CAiEtC;AA0CD,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CA8F1E;AA4MD;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,SAAS,YAAY,EAAE,EAC/B,OAAO,EAAE;IACP,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,KAAK,EAAE,iBAAiB,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;CACtB,GACA,OAAO,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,CAqChC;AAiqBD,wBAAsB,cAAc,CAClC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,CAkCjB;AAMD,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,CAoHjB;AA2CD,wBAAsB,OAAO,CAC3B,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,CA0DjB;AAMD,wBAAsB,SAAS,CAC7B,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,CAuDjB;AAMD,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,CAiCjB;AAMD,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,CAkCjB;AAiBD,wBAAsB,aAAa,CACjC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,KAAK,EAAE,MAAM,EAAE,EACf,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,CAoFjB;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,CAsCjB;AAED,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,CAqCjB;AAoED,wEAAwE;AACxE,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,CAAC,cAAc,GAC5B,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAuCnC"}
|
|
@@ -19,7 +19,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
19
19
|
});
|
|
20
20
|
};
|
|
21
21
|
import { basename, resolve } from "node:path";
|
|
22
|
-
import { isPublicEndpointPolicy } from "../channels.js";
|
|
22
|
+
import { catchAuthDeclaration, isPublicEndpointPolicy } from "../channels.js";
|
|
23
23
|
import { isCursorAccountTransport, } from "../types.js";
|
|
24
24
|
import { CursorBackendClient } from "./cursor/backend-client.js";
|
|
25
25
|
import { cursorExternalApiUrl, resolveApiKey, SIGN_IN_HINT, } from "./cursor/credentials.js";
|
|
@@ -31,6 +31,7 @@ import { describeError } from "./describe-error.js";
|
|
|
31
31
|
import { formatDiagnostics, hasErrorDiagnostics, isAgentProjectDir, listChildAgentDirs, loadAgentProject, } from "./discovery.js";
|
|
32
32
|
import { CLI_COMMAND_NAME as CLI } from "./distribution.js";
|
|
33
33
|
import { isReservedSecretName, isValidCursorEventRepo, validateSettableSecretName, } from "./hosting.js";
|
|
34
|
+
import { deploymentArchitecture, rejectV2ForLegacyCommand, } from "./legacy-command-guard.js";
|
|
34
35
|
import { deployProgressLabel, sanitizeCustomerError } from "./logs-client.js";
|
|
35
36
|
import { sleep } from "./sleep.js";
|
|
36
37
|
import { stderrPalette } from "./terminal-style.js";
|
|
@@ -422,7 +423,7 @@ export function promptChooseDeployTargets(agents, options) {
|
|
|
422
423
|
}
|
|
423
424
|
function deployOne(ctx, options, target, extras) {
|
|
424
425
|
return __awaiter(this, void 0, void 0, function* () {
|
|
425
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
426
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
426
427
|
const { dir, slug } = target;
|
|
427
428
|
// Fill --repo/--ref/--path from the local git checkout when omitted so
|
|
428
429
|
// `agent-sdk deploy` inside an agent directory is enough. Only probe git
|
|
@@ -493,6 +494,12 @@ function deployOne(ctx, options, target, extras) {
|
|
|
493
494
|
// without the alias token before the deploy is accepted.
|
|
494
495
|
ctx.err(` public: ${publicRoutePaths.join(", ")} (served WITHOUT the alias token — these channels authenticate requests themselves)\n`);
|
|
495
496
|
}
|
|
497
|
+
const deadSecretChannels = (_h = manifest === null || manifest === void 0 ? void 0 : manifest.publicChannelIdsWithDeadSecretPolicies) !== null && _h !== void 0 ? _h : [];
|
|
498
|
+
if (!ctx.json && deadSecretChannels.length > 0) {
|
|
499
|
+
ctx.err(`warning: ${deadSecretChannels
|
|
500
|
+
.map((channelId) => `/v1/channels/${channelId}`)
|
|
501
|
+
.join(", ")}: publicEndpoint() sits beside sharedSecretAuth()/hmacSignatureAuth() — auth chains are any-of, so every request is admitted and those secret policies never run. Drop publicEndpoint() to enforce them, or drop them to make the intent explicit.\n`);
|
|
502
|
+
}
|
|
496
503
|
if ((manifest === null || manifest === void 0 ? void 0 : manifest.architecture) === "v2") {
|
|
497
504
|
if (!ctx.json) {
|
|
498
505
|
ctx.err(" architecture: v2\n");
|
|
@@ -572,7 +579,7 @@ function deployOne(ctx, options, target, extras) {
|
|
|
572
579
|
ctx.err(`Deployment ${slug} ended ${detail.status}${deployFailureDetail(detail.lastError)}\n`);
|
|
573
580
|
return 1;
|
|
574
581
|
}
|
|
575
|
-
const deployedPublicRoutes = (
|
|
582
|
+
const deployedPublicRoutes = (_j = detail.publicRoutePaths) !== null && _j !== void 0 ? _j : [];
|
|
576
583
|
ctx.out(`Deployed ${slug} (team ${ctx.teamId})\n` +
|
|
577
584
|
` status: running\n` +
|
|
578
585
|
` generation: ${detail.generation}\n` +
|
|
@@ -587,7 +594,7 @@ function deployOne(ctx, options, target, extras) {
|
|
|
587
594
|
.join(""));
|
|
588
595
|
yield runPostDeployConnectorAuth(ctx, options, {
|
|
589
596
|
slug,
|
|
590
|
-
connections: (
|
|
597
|
+
connections: (_k = manifest === null || manifest === void 0 ? void 0 : manifest.cursorAccountConnections) !== null && _k !== void 0 ? _k : [],
|
|
591
598
|
serviceAccountId: deploymentServiceAccountId(detail),
|
|
592
599
|
});
|
|
593
600
|
return 0;
|
|
@@ -834,6 +841,18 @@ function readDeployManifest(dir) {
|
|
|
834
841
|
publicChannelIds: project.channels
|
|
835
842
|
.filter((channel) => { var _a; return ((_a = channel.definition.auth) !== null && _a !== void 0 ? _a : []).some(isPublicEndpointPolicy); })
|
|
836
843
|
.map((channel) => channel.id),
|
|
844
|
+
publicChannelIdsWithDeadSecretPolicies: project.channels
|
|
845
|
+
.filter((channel) => {
|
|
846
|
+
var _a;
|
|
847
|
+
const auth = (_a = channel.definition.auth) !== null && _a !== void 0 ? _a : [];
|
|
848
|
+
return (auth.some(isPublicEndpointPolicy) &&
|
|
849
|
+
auth.some((policy) => {
|
|
850
|
+
var _a;
|
|
851
|
+
const kind = (_a = catchAuthDeclaration(policy)) === null || _a === void 0 ? void 0 : _a.kind;
|
|
852
|
+
return kind !== undefined && kind !== "public";
|
|
853
|
+
}));
|
|
854
|
+
})
|
|
855
|
+
.map((channel) => channel.id),
|
|
837
856
|
httpChannelPublicEndpoint: ((_a = project.httpChannel.auth) !== null && _a !== void 0 ? _a : []).some(isPublicEndpointPolicy),
|
|
838
857
|
hasScmChannels: project.channels.some((channel) => {
|
|
839
858
|
var _a;
|
|
@@ -1107,15 +1126,28 @@ export function cmdDelete(slug, options) {
|
|
|
1107
1126
|
if (typeof ctx === "number") {
|
|
1108
1127
|
return ctx;
|
|
1109
1128
|
}
|
|
1129
|
+
// Same dispatch as `stop`: v1 409s architecture-v2 slugs, so the v2
|
|
1130
|
+
// DELETE goes first. A v2 404 (missing slug, or an older backend)
|
|
1131
|
+
// falls through to the v1 agent-serve delete.
|
|
1132
|
+
let architecture = "v2";
|
|
1110
1133
|
let accepted;
|
|
1111
1134
|
try {
|
|
1112
|
-
accepted = yield ctx.client.
|
|
1113
|
-
teamId: ctx.teamId,
|
|
1114
|
-
slug,
|
|
1115
|
-
});
|
|
1135
|
+
accepted = yield ctx.client.deleteAgentkit({ teamId: ctx.teamId, slug });
|
|
1116
1136
|
}
|
|
1117
1137
|
catch (error) {
|
|
1118
|
-
|
|
1138
|
+
if (!(error instanceof DeployApiError) || error.status !== 404) {
|
|
1139
|
+
return renderApiError(error, ctx.err);
|
|
1140
|
+
}
|
|
1141
|
+
try {
|
|
1142
|
+
accepted = yield ctx.client.deleteDeployment({
|
|
1143
|
+
teamId: ctx.teamId,
|
|
1144
|
+
slug,
|
|
1145
|
+
});
|
|
1146
|
+
architecture = "v1";
|
|
1147
|
+
}
|
|
1148
|
+
catch (v1Error) {
|
|
1149
|
+
return renderApiError(v1Error, ctx.err);
|
|
1150
|
+
}
|
|
1119
1151
|
}
|
|
1120
1152
|
if (ctx.noWait) {
|
|
1121
1153
|
if (ctx.json) {
|
|
@@ -1127,7 +1159,9 @@ export function cmdDelete(slug, options) {
|
|
|
1127
1159
|
return 0;
|
|
1128
1160
|
}
|
|
1129
1161
|
try {
|
|
1130
|
-
yield pollUntilGone(ctx, slug)
|
|
1162
|
+
yield pollUntilGone(ctx, slug, () => architecture === "v2"
|
|
1163
|
+
? ctx.client.getAgentkitDeploy({ teamId: ctx.teamId, slug })
|
|
1164
|
+
: ctx.client.getDeployment({ teamId: ctx.teamId, slug }));
|
|
1131
1165
|
}
|
|
1132
1166
|
catch (error) {
|
|
1133
1167
|
return renderApiError(error, ctx.err);
|
|
@@ -1157,6 +1191,11 @@ export function cmdRotateToken(slug, options) {
|
|
|
1157
1191
|
}
|
|
1158
1192
|
let aliasToken;
|
|
1159
1193
|
try {
|
|
1194
|
+
yield rejectV2ForLegacyCommand({
|
|
1195
|
+
client: ctx.client,
|
|
1196
|
+
teamId: ctx.teamId,
|
|
1197
|
+
slug,
|
|
1198
|
+
});
|
|
1160
1199
|
aliasToken = yield ctx.client.rotateAliasToken({
|
|
1161
1200
|
teamId: ctx.teamId,
|
|
1162
1201
|
slug,
|
|
@@ -1189,6 +1228,11 @@ export function cmdRotatePodCredential(slug, options) {
|
|
|
1189
1228
|
}
|
|
1190
1229
|
let podCredentialMaskedKey;
|
|
1191
1230
|
try {
|
|
1231
|
+
yield rejectV2ForLegacyCommand({
|
|
1232
|
+
client: ctx.client,
|
|
1233
|
+
teamId: ctx.teamId,
|
|
1234
|
+
slug,
|
|
1235
|
+
});
|
|
1192
1236
|
podCredentialMaskedKey = yield ctx.client.rotatePodCredential({
|
|
1193
1237
|
teamId: ctx.teamId,
|
|
1194
1238
|
slug,
|
|
@@ -1211,16 +1255,11 @@ export function cmdRotatePodCredential(slug, options) {
|
|
|
1211
1255
|
// ============================================================================
|
|
1212
1256
|
function secretDeploymentArchitecture(ctx, slug) {
|
|
1213
1257
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
if (error instanceof DeployApiError && error.status === 404) {
|
|
1220
|
-
return "v1";
|
|
1221
|
-
}
|
|
1222
|
-
throw error;
|
|
1223
|
-
}
|
|
1258
|
+
return deploymentArchitecture({
|
|
1259
|
+
client: ctx.client,
|
|
1260
|
+
teamId: ctx.teamId,
|
|
1261
|
+
slug,
|
|
1262
|
+
});
|
|
1224
1263
|
});
|
|
1225
1264
|
}
|
|
1226
1265
|
export function cmdSecretsSet(slug, specs, options) {
|
|
@@ -1565,7 +1604,7 @@ function transientDeployStatusWaitMs(error, pollIntervalMs) {
|
|
|
1565
1604
|
* Wait until GET 404s (the delete reconciler purged the record). Treats
|
|
1566
1605
|
* other errors as failures. Throws DeployApiError on timeout.
|
|
1567
1606
|
*/
|
|
1568
|
-
function pollUntilGone(ctx, slug) {
|
|
1607
|
+
function pollUntilGone(ctx, slug, getDetail) {
|
|
1569
1608
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1570
1609
|
const startedAt = Date.now();
|
|
1571
1610
|
const tty = process.stderr.isTTY === true;
|
|
@@ -1587,10 +1626,7 @@ function pollUntilGone(ctx, slug) {
|
|
|
1587
1626
|
};
|
|
1588
1627
|
for (;;) {
|
|
1589
1628
|
try {
|
|
1590
|
-
const detail = yield
|
|
1591
|
-
teamId: ctx.teamId,
|
|
1592
|
-
slug,
|
|
1593
|
-
});
|
|
1629
|
+
const detail = yield getDetail();
|
|
1594
1630
|
report(deployProgressLabel(detail));
|
|
1595
1631
|
}
|
|
1596
1632
|
catch (error) {
|