@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/src/internal/server.ts
CHANGED
|
@@ -66,6 +66,7 @@ import type {
|
|
|
66
66
|
ReminderInfo,
|
|
67
67
|
ServeOptions,
|
|
68
68
|
} from "../types.js";
|
|
69
|
+
import { invokeChannelRoute } from "./channel-route-dispatch.js";
|
|
69
70
|
import { selectConversationMirror } from "./conversation-mirror.js";
|
|
70
71
|
import {
|
|
71
72
|
type CursorAccountConnectionRef,
|
|
@@ -129,6 +130,12 @@ import {
|
|
|
129
130
|
} from "./handleAgentServeTrigger.js";
|
|
130
131
|
import { createHostPlatforms, warmupHostGitHubAuth } from "./host-platforms.js";
|
|
131
132
|
import { registerHostedDeliveryRoute } from "./hosted-delivery.js";
|
|
133
|
+
import type { HostedReminderFireDescriptorPayload } from "./hosted-delivery-protocol.js";
|
|
134
|
+
import {
|
|
135
|
+
HOSTED_DELIVERY_HEADER,
|
|
136
|
+
HOSTED_GUEST_RETRY_TERMINAL,
|
|
137
|
+
hostedGuestErrorResponse,
|
|
138
|
+
} from "./hosted-delivery-protocol.js";
|
|
132
139
|
import { hostedErrorStackSnippet } from "./hosted-execution-diag.js";
|
|
133
140
|
import { flushHostedExecutionProcessDeath } from "./hosted-execution-flush.js";
|
|
134
141
|
import {
|
|
@@ -138,7 +145,6 @@ import {
|
|
|
138
145
|
readJsonObject,
|
|
139
146
|
requireSessionOwner,
|
|
140
147
|
} from "./http-channel.js";
|
|
141
|
-
import { validateToolInput } from "./json-schema.js";
|
|
142
148
|
import { DEFAULT_SERVE_PORT, listenHttpServer } from "./listen-port.js";
|
|
143
149
|
import {
|
|
144
150
|
createLocalControlPlane,
|
|
@@ -171,7 +177,10 @@ import {
|
|
|
171
177
|
PLATFORM_SCHEDULE_CATALOG_FILENAME,
|
|
172
178
|
syncHostedPlatformSchedules,
|
|
173
179
|
} from "./platform-schedule-sync.js";
|
|
174
|
-
import {
|
|
180
|
+
import {
|
|
181
|
+
createCursorHostedPlatformTimers,
|
|
182
|
+
createCursorHostedReminderControlPlane,
|
|
183
|
+
} from "./platform-timers.js";
|
|
175
184
|
import {
|
|
176
185
|
type AgentIndexEntry,
|
|
177
186
|
renderAgentsIndexHtml,
|
|
@@ -188,9 +197,15 @@ import {
|
|
|
188
197
|
collectMemoryHealthFields,
|
|
189
198
|
sumEventLogStats,
|
|
190
199
|
} from "./process-memory-telemetry.js";
|
|
200
|
+
import {
|
|
201
|
+
claimFromDescriptor,
|
|
202
|
+
type ReminderControlPlane,
|
|
203
|
+
type ReminderFireDescriptor,
|
|
204
|
+
} from "./reminder-control-plane-protocol.js";
|
|
191
205
|
import {
|
|
192
206
|
ReminderRunner,
|
|
193
207
|
ReminderValidationError,
|
|
208
|
+
rejectAnonymousReminderHandlers,
|
|
194
209
|
UnknownReminderError,
|
|
195
210
|
} from "./reminder-runner.js";
|
|
196
211
|
import { mapThrownRequestError } from "./request-error-status.js";
|
|
@@ -204,6 +219,7 @@ import { RuntimeDispatchingRunner } from "./runtime-dispatch-runner.js";
|
|
|
204
219
|
import { ScheduleRunner, UnknownScheduleError } from "./schedule-runner.js";
|
|
205
220
|
import { type AgentRunner, CursorSdkRunner } from "./sdk-runner.js";
|
|
206
221
|
import {
|
|
222
|
+
HTTP_CHANNEL_ID,
|
|
207
223
|
InvalidContinuationTokenError,
|
|
208
224
|
SessionEngine,
|
|
209
225
|
ToolInputError,
|
|
@@ -246,6 +262,11 @@ interface MountedRuntime {
|
|
|
246
262
|
scheduleRunner: ScheduleRunner;
|
|
247
263
|
reminderRunner: ReminderRunner;
|
|
248
264
|
controlPlane?: LocalControlPlane;
|
|
265
|
+
/**
|
|
266
|
+
* Hosted (or local) reminder CP client for architecture v2 descriptor
|
|
267
|
+
* execution. Undefined when the project is not on the CP protocol.
|
|
268
|
+
*/
|
|
269
|
+
reminderControlPlane?: ReminderControlPlane;
|
|
249
270
|
/** Playground eval batches (`/v1/dev/evals`); loopbackUrl set after listen. */
|
|
250
271
|
evalRuns: EvalRunStore;
|
|
251
272
|
}
|
|
@@ -368,13 +389,15 @@ export async function startServer(
|
|
|
368
389
|
// One resolution for every Cursor credential consumer (SDK runner, account
|
|
369
390
|
// MCP bridge, SCM event relay, GitHub credentials): explicit option →
|
|
370
391
|
// CURSOR_API_KEY → CURSOR_API_KEY_FILE (or the hosted default path) →
|
|
371
|
-
// stored `agent-sdk login`. SDK / GitHub /
|
|
372
|
-
// Slack and deployment-event relays capture
|
|
392
|
+
// CURSOR_SERVICE_ACCOUNT_KEY → stored `agent-sdk login`. SDK / GitHub /
|
|
393
|
+
// account MCP re-read later; Slack and deployment-event relays capture
|
|
394
|
+
// the key at start.
|
|
373
395
|
const accountKey = await resolveApiKey(
|
|
374
396
|
options.apiKey === undefined ? {} : { apiKey: options.apiKey }
|
|
375
397
|
);
|
|
376
398
|
// First present source wins (we define the order): option → env → file →
|
|
377
|
-
// stored login. Re-read so bind can drop env or file
|
|
399
|
+
// service account → stored login. Re-read so bind can drop env or file
|
|
400
|
+
// onto a listening process.
|
|
378
401
|
const liveCursorApiKey = (): string | undefined =>
|
|
379
402
|
resolveApiKeySync(
|
|
380
403
|
options.apiKey === undefined ? {} : { apiKey: options.apiKey }
|
|
@@ -846,12 +869,23 @@ export async function startServer(
|
|
|
846
869
|
}
|
|
847
870
|
const scheduleRunner = new ScheduleRunner(engine, project, logger);
|
|
848
871
|
let reminderRunner!: ReminderRunner;
|
|
872
|
+
const architecture = project.agent.architecture;
|
|
873
|
+
const useReminderCpProtocol = architecture === "v2";
|
|
849
874
|
const localControlPlane = noControlPlane
|
|
850
875
|
? undefined
|
|
851
876
|
: await createLocalControlPlane({
|
|
852
877
|
fireSchedule: (name) => scheduleRunner.dispatch(name),
|
|
853
|
-
|
|
854
|
-
|
|
878
|
+
...(useReminderCpProtocol
|
|
879
|
+
? {
|
|
880
|
+
executeReminder: (descriptor) =>
|
|
881
|
+
reminderRunner.executeFire(descriptor),
|
|
882
|
+
}
|
|
883
|
+
: {
|
|
884
|
+
fireReminder: (id, fireCount) =>
|
|
885
|
+
reminderRunner.dispatch(id, {
|
|
886
|
+
expectedFireCount: fireCount,
|
|
887
|
+
}),
|
|
888
|
+
}),
|
|
855
889
|
stateDir: join(stateRoot, "control-plane"),
|
|
856
890
|
armReminderClocks: runReminders,
|
|
857
891
|
logger,
|
|
@@ -859,7 +893,23 @@ export async function startServer(
|
|
|
859
893
|
const timerClient = noControlPlane
|
|
860
894
|
? createCursorHostedPlatformTimers()
|
|
861
895
|
: localControlPlane;
|
|
862
|
-
|
|
896
|
+
const hostedReminderControlPlane =
|
|
897
|
+
noControlPlane && useReminderCpProtocol
|
|
898
|
+
? createCursorHostedReminderControlPlane()
|
|
899
|
+
: undefined;
|
|
900
|
+
const reminderControlPlane = useReminderCpProtocol
|
|
901
|
+
? (localControlPlane ?? hostedReminderControlPlane)
|
|
902
|
+
: undefined;
|
|
903
|
+
reminderRunner = new ReminderRunner(engine, logger, timerClient, {
|
|
904
|
+
namedHandlers: project.reminders ?? [],
|
|
905
|
+
// Architecture v2 rejects anonymous run/until everywhere (local + hosted).
|
|
906
|
+
rejectAnonymousHandlers: rejectAnonymousReminderHandlers({
|
|
907
|
+
noControlPlane,
|
|
908
|
+
architecture,
|
|
909
|
+
}),
|
|
910
|
+
architecture,
|
|
911
|
+
controlPlane: reminderControlPlane,
|
|
912
|
+
});
|
|
863
913
|
const evalRuns = new EvalRunStore(
|
|
864
914
|
project.rootDir,
|
|
865
915
|
logger,
|
|
@@ -897,6 +947,7 @@ export async function startServer(
|
|
|
897
947
|
...(localControlPlane === undefined
|
|
898
948
|
? {}
|
|
899
949
|
: { controlPlane: localControlPlane }),
|
|
950
|
+
...(reminderControlPlane === undefined ? {} : { reminderControlPlane }),
|
|
900
951
|
};
|
|
901
952
|
runtimes.push(runtime);
|
|
902
953
|
const accountRefs = accountRefsBySlug.get(slug);
|
|
@@ -935,6 +986,7 @@ export async function startServer(
|
|
|
935
986
|
const startArgs: ChannelStartArgs = {
|
|
936
987
|
send: (message, sendOptions) =>
|
|
937
988
|
engine.send(channel.id, message, sendOptions),
|
|
989
|
+
architecture: project.agent.architecture,
|
|
938
990
|
getSession: (sessionId) =>
|
|
939
991
|
engine.getChannelSession(channel.id, sessionId),
|
|
940
992
|
receive: (target, input) => engine.receive(target, input),
|
|
@@ -1455,7 +1507,14 @@ function mountAgentRoutes(
|
|
|
1455
1507
|
evictSdkSession?: (sessionId: string) => void;
|
|
1456
1508
|
}
|
|
1457
1509
|
): void {
|
|
1458
|
-
const {
|
|
1510
|
+
const {
|
|
1511
|
+
slug,
|
|
1512
|
+
project,
|
|
1513
|
+
engine,
|
|
1514
|
+
scheduleRunner,
|
|
1515
|
+
reminderRunner,
|
|
1516
|
+
reminderControlPlane,
|
|
1517
|
+
} = runtime;
|
|
1459
1518
|
const {
|
|
1460
1519
|
dev,
|
|
1461
1520
|
playground,
|
|
@@ -1514,13 +1573,47 @@ function mountAgentRoutes(
|
|
|
1514
1573
|
registerHostedDeliveryRoute({
|
|
1515
1574
|
router,
|
|
1516
1575
|
base,
|
|
1517
|
-
|
|
1576
|
+
// The built-in http channel is not in `project.channels`; the control
|
|
1577
|
+
// plane's session start (`agentsdk.session`) is delivered to it.
|
|
1578
|
+
channels: [
|
|
1579
|
+
...project.channels,
|
|
1580
|
+
{ id: HTTP_CHANNEL_ID, definition: project.httpChannel },
|
|
1581
|
+
],
|
|
1518
1582
|
buildHandlerArgs: (channelId, hostedSessionId) =>
|
|
1519
1583
|
buildChannelHandlerArgs({
|
|
1520
1584
|
runtime,
|
|
1521
1585
|
channelId,
|
|
1522
1586
|
hostedSessionId,
|
|
1523
1587
|
}),
|
|
1588
|
+
fireReminder: (reminderId, fireCount) =>
|
|
1589
|
+
reminderRunner.dispatch(reminderId, { expectedFireCount: fireCount }),
|
|
1590
|
+
executeReminderDescriptor: async (descriptor) => {
|
|
1591
|
+
if (reminderControlPlane === undefined) {
|
|
1592
|
+
throw new Error("hosted reminder CP client is not configured");
|
|
1593
|
+
}
|
|
1594
|
+
const fireDescriptor = descriptor as unknown as ReminderFireDescriptor;
|
|
1595
|
+
const outcome = await reminderRunner.executeFire(fireDescriptor);
|
|
1596
|
+
// applyReminderOutcome is idempotent and internally retries transient
|
|
1597
|
+
// CP failures. Handler execution is at-least-once across Temporal
|
|
1598
|
+
// re-admission if apply ultimately fails.
|
|
1599
|
+
const apply = await reminderControlPlane.applyReminderOutcome(
|
|
1600
|
+
claimFromDescriptor(fireDescriptor),
|
|
1601
|
+
outcome
|
|
1602
|
+
);
|
|
1603
|
+
// Cancel/rekey winning the race is a successful no-op from the guest's
|
|
1604
|
+
// perspective (fired work may have run; lifecycle authority stayed CP).
|
|
1605
|
+
if (!apply.applied && apply.reason === "missing") {
|
|
1606
|
+
return {
|
|
1607
|
+
reminderId: descriptor.id,
|
|
1608
|
+
outcome: "noop" as const,
|
|
1609
|
+
reason: apply.reason,
|
|
1610
|
+
};
|
|
1611
|
+
}
|
|
1612
|
+
return {
|
|
1613
|
+
reminderId: descriptor.id,
|
|
1614
|
+
outcome: "fired" as const,
|
|
1615
|
+
};
|
|
1616
|
+
},
|
|
1524
1617
|
drainSessionDurability: (sessionId) =>
|
|
1525
1618
|
engine.drainSessionDurability(sessionId),
|
|
1526
1619
|
flushOtel: args.flushOtel,
|
|
@@ -2334,75 +2427,18 @@ function mountAgentRoutes(
|
|
|
2334
2427
|
method: channelRoute.method,
|
|
2335
2428
|
pattern: `${base}/v1/channels/${channel.id}${channelRoute.path}`,
|
|
2336
2429
|
auth: channelAuth,
|
|
2337
|
-
handler:
|
|
2338
|
-
|
|
2339
|
-
|
|
2340
|
-
|
|
2341
|
-
|
|
2342
|
-
|
|
2343
|
-
|
|
2344
|
-
|
|
2345
|
-
|
|
2346
|
-
|
|
2347
|
-
|
|
2348
|
-
|
|
2349
|
-
);
|
|
2350
|
-
const queryValidation = validateToolInput(
|
|
2351
|
-
channelRoute.querySchema,
|
|
2352
|
-
rawQuery
|
|
2353
|
-
);
|
|
2354
|
-
if (!queryValidation.ok) {
|
|
2355
|
-
return jsonResponse(
|
|
2356
|
-
{ error: queryValidation.message },
|
|
2357
|
-
{ status: 400 }
|
|
2358
|
-
);
|
|
2359
|
-
}
|
|
2360
|
-
handlerArgs.query = queryValidation.value;
|
|
2361
|
-
}
|
|
2362
|
-
|
|
2363
|
-
if (channelRoute.bodySchema !== undefined) {
|
|
2364
|
-
// Buffer once so handlers that need the raw body (e.g. GitHub
|
|
2365
|
-
// HMAC) can still read `request.text()` / `request.json()`.
|
|
2366
|
-
let bodyText: string;
|
|
2367
|
-
try {
|
|
2368
|
-
bodyText = await request.text();
|
|
2369
|
-
} catch {
|
|
2370
|
-
return jsonResponse(
|
|
2371
|
-
{ error: "Failed to read request body" },
|
|
2372
|
-
{ status: 400 }
|
|
2373
|
-
);
|
|
2374
|
-
}
|
|
2375
|
-
let rawBody: unknown;
|
|
2376
|
-
try {
|
|
2377
|
-
rawBody = bodyText === "" ? {} : JSON.parse(bodyText);
|
|
2378
|
-
} catch {
|
|
2379
|
-
return jsonResponse(
|
|
2380
|
-
{ error: "Request body must be valid JSON" },
|
|
2381
|
-
{ status: 400 }
|
|
2382
|
-
);
|
|
2383
|
-
}
|
|
2384
|
-
const bodyValidation = validateToolInput(
|
|
2385
|
-
channelRoute.bodySchema,
|
|
2386
|
-
rawBody
|
|
2387
|
-
);
|
|
2388
|
-
if (!bodyValidation.ok) {
|
|
2389
|
-
return jsonResponse(
|
|
2390
|
-
{ error: bodyValidation.message },
|
|
2391
|
-
{ status: 400 }
|
|
2392
|
-
);
|
|
2393
|
-
}
|
|
2394
|
-
handlerArgs.body = bodyValidation.value;
|
|
2395
|
-
request = new Request(request.url, {
|
|
2396
|
-
method: request.method,
|
|
2397
|
-
headers: request.headers,
|
|
2398
|
-
body: bodyText === "" ? undefined : bodyText,
|
|
2399
|
-
// node: undici / fetch may require duplex for streamed bodies;
|
|
2400
|
-
// a string body does not.
|
|
2401
|
-
});
|
|
2402
|
-
}
|
|
2403
|
-
|
|
2404
|
-
return channelRoute.handler(request, handlerArgs);
|
|
2405
|
-
},
|
|
2430
|
+
handler: (request, ctx) =>
|
|
2431
|
+
invokeChannelRoute({
|
|
2432
|
+
route: channelRoute,
|
|
2433
|
+
request,
|
|
2434
|
+
handlerArgs: buildChannelHandlerArgs({
|
|
2435
|
+
runtime,
|
|
2436
|
+
channelId: channel.id,
|
|
2437
|
+
params: ctx.params,
|
|
2438
|
+
requestIp: ctx.requestIp,
|
|
2439
|
+
auth: ctx.auth,
|
|
2440
|
+
}),
|
|
2441
|
+
}),
|
|
2406
2442
|
});
|
|
2407
2443
|
}
|
|
2408
2444
|
}
|
|
@@ -2985,19 +3021,34 @@ async function handleRequest(
|
|
|
2985
3021
|
logger: (line: string) => void
|
|
2986
3022
|
): Promise<void> {
|
|
2987
3023
|
let response: Response;
|
|
3024
|
+
let hostedDeliveryRequest = false;
|
|
2988
3025
|
const method = req.method ?? "GET";
|
|
2989
3026
|
try {
|
|
2990
3027
|
const request = await toFetchRequest(req);
|
|
3028
|
+
hostedDeliveryRequest = request.headers.get(HOSTED_DELIVERY_HEADER) === "1";
|
|
3029
|
+
const requestErrorResponse = (
|
|
3030
|
+
status: number,
|
|
3031
|
+
error: string,
|
|
3032
|
+
message: string
|
|
3033
|
+
) =>
|
|
3034
|
+
hostedDeliveryRequest
|
|
3035
|
+
? hostedGuestErrorResponse({
|
|
3036
|
+
status,
|
|
3037
|
+
error,
|
|
3038
|
+
retry: HOSTED_GUEST_RETRY_TERMINAL,
|
|
3039
|
+
message,
|
|
3040
|
+
})
|
|
3041
|
+
: errorResponse(status, error, message);
|
|
2991
3042
|
const url = new URL(request.url);
|
|
2992
3043
|
const match = router.match(request.method, url.pathname);
|
|
2993
3044
|
if (match === undefined) {
|
|
2994
3045
|
response = router.hasPath(url.pathname)
|
|
2995
|
-
?
|
|
3046
|
+
? requestErrorResponse(
|
|
2996
3047
|
405,
|
|
2997
3048
|
"method_not_allowed",
|
|
2998
3049
|
`${request.method} is not supported on ${url.pathname}.`
|
|
2999
3050
|
)
|
|
3000
|
-
:
|
|
3051
|
+
: requestErrorResponse(
|
|
3001
3052
|
404,
|
|
3002
3053
|
"not_found",
|
|
3003
3054
|
`No route for ${request.method} ${url.pathname}.`
|
|
@@ -3011,7 +3062,7 @@ async function handleRequest(
|
|
|
3011
3062
|
unauthorized = auth === null;
|
|
3012
3063
|
}
|
|
3013
3064
|
response = unauthorized
|
|
3014
|
-
?
|
|
3065
|
+
? requestErrorResponse(
|
|
3015
3066
|
401,
|
|
3016
3067
|
"unauthorized",
|
|
3017
3068
|
"No auth policy admitted this request. In production, configure channel auth (e.g. bearerAuth) — the default localDevStrict() policy only admits loopback callers with a loopback Host."
|
|
@@ -3025,7 +3076,14 @@ async function handleRequest(
|
|
|
3025
3076
|
} catch (error) {
|
|
3026
3077
|
const mapped = mapThrownRequestError(error);
|
|
3027
3078
|
if (mapped !== undefined) {
|
|
3028
|
-
response =
|
|
3079
|
+
response = hostedDeliveryRequest
|
|
3080
|
+
? hostedGuestErrorResponse({
|
|
3081
|
+
status: mapped.status,
|
|
3082
|
+
error: mapped.code,
|
|
3083
|
+
retry: mapped.retry,
|
|
3084
|
+
message: mapped.message,
|
|
3085
|
+
})
|
|
3086
|
+
: errorResponse(mapped.status, mapped.code, mapped.message);
|
|
3029
3087
|
} else {
|
|
3030
3088
|
logger(
|
|
3031
3089
|
`[agent-sdk] request failed: ${
|
|
@@ -3035,13 +3093,18 @@ async function handleRequest(
|
|
|
3035
3093
|
}`
|
|
3036
3094
|
);
|
|
3037
3095
|
const snippet = hostedErrorStackSnippet(error);
|
|
3038
|
-
|
|
3039
|
-
500,
|
|
3040
|
-
"internal_error",
|
|
3096
|
+
const message =
|
|
3041
3097
|
snippet.length > 0
|
|
3042
3098
|
? `Internal server error: ${snippet}`
|
|
3043
|
-
: "Internal server error."
|
|
3044
|
-
|
|
3099
|
+
: "Internal server error.";
|
|
3100
|
+
response = hostedDeliveryRequest
|
|
3101
|
+
? hostedGuestErrorResponse({
|
|
3102
|
+
status: 500,
|
|
3103
|
+
error: "internal_error",
|
|
3104
|
+
retry: HOSTED_GUEST_RETRY_TERMINAL,
|
|
3105
|
+
message,
|
|
3106
|
+
})
|
|
3107
|
+
: errorResponse(500, "internal_error", message);
|
|
3045
3108
|
}
|
|
3046
3109
|
}
|
|
3047
3110
|
|