@cursor/july 0.1.107 → 0.1.109
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +2 -6
- package/README.md +13 -11
- package/dist/bin/agent-serve.js +30 -8
- package/dist/channels/bitbucket/api.d.ts +41 -0
- package/dist/channels/bitbucket/api.d.ts.map +1 -1
- package/dist/channels/bitbucket/api.js +260 -0
- package/dist/channels/bitbucket/binding.d.ts +4 -0
- package/dist/channels/bitbucket/binding.d.ts.map +1 -1
- package/dist/channels/bitbucket/binding.js +16 -0
- package/dist/channels/bitbucket/index.d.ts +1 -1
- package/dist/channels/bitbucket/index.d.ts.map +1 -1
- package/dist/channels/bitbucket/index.js +1 -1
- package/dist/channels/github/github-channel.js +8 -5
- package/dist/channels/github/types.d.ts +5 -1
- package/dist/channels/github/types.d.ts.map +1 -1
- package/dist/channels/gitlab/api.d.ts +27 -0
- package/dist/channels/gitlab/api.d.ts.map +1 -1
- package/dist/channels/gitlab/api.js +88 -0
- package/dist/channels/gitlab/binding.d.ts +5 -0
- package/dist/channels/gitlab/binding.d.ts.map +1 -1
- package/dist/channels/gitlab/binding.js +10 -0
- package/dist/channels/gitlab/index.d.ts +1 -1
- package/dist/channels/gitlab/index.d.ts.map +1 -1
- package/dist/channels/gitlab/index.js +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 +5 -1
- package/dist/channels/origin/types.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.d.ts +10 -0
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.js +20 -3
- package/dist/channels/slack/slack-channel.d.ts +12 -5
- package/dist/channels/slack/slack-channel.d.ts.map +1 -1
- package/dist/channels/slack/slack-channel.js +59 -8
- 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 +2 -2
- package/dist/docs/assets/{app.CtuckIiL.js → app.Cr-wVbnB.js} +1 -1
- package/dist/docs/assets/{building-with-agents.md.CUSWxlP_.js → building-with-agents.md.D0KbSkJn.js} +2 -2
- package/dist/docs/assets/{building-with-agents.md.CUSWxlP_.lean.js → building-with-agents.md.D0KbSkJn.lean.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.CFVQ4S17.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.Bkkhnu8K.js → VPLocalSearchBox.CVQERt56.js} +1 -1
- package/dist/docs/assets/chunks/{theme.DhpIe0Pa.js → theme.Dnsd3XOn.js} +2 -2
- package/dist/docs/assets/concepts.md.B4o63Gul.js +1 -0
- 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.C7JLjoEP.js +211 -0
- package/dist/docs/assets/evals.md.C7JLjoEP.lean.js +1 -0
- package/dist/docs/assets/guides_bitbucket.md.DZPzmUjU.js +10 -0
- package/dist/docs/assets/guides_bitbucket.md.DZPzmUjU.lean.js +1 -0
- 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.TZaTZlfz.js} +13 -3
- package/dist/docs/assets/{guides_github.md.c0gdGJ-D.lean.js → guides_github.md.TZaTZlfz.lean.js} +1 -1
- package/dist/docs/assets/guides_gitlab.md.BmqwQfdG.js +14 -0
- package/dist/docs/assets/guides_gitlab.md.BmqwQfdG.lean.js +1 -0
- 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_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/{guides_webhooks.md.DKdA43Qm.js → guides_webhooks.md.CJK484ex.js} +2 -2
- package/dist/docs/assets/{hillclimbing.md.CpTGTCle.js → hillclimbing.md.BOiVo1tf.js} +1 -1
- package/dist/docs/assets/index.md.DD9Q2XuJ.js +5 -0
- package/dist/docs/assets/{index.md.BW_6tOgR.lean.js → index.md.DD9Q2XuJ.lean.js} +1 -1
- 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.D-qTqwcq.js → reference_channels.md.CAo-iK4j.js} +2 -2
- package/dist/docs/assets/{reference_channels.md.D-qTqwcq.lean.js → reference_channels.md.CAo-iK4j.lean.js} +1 -1
- package/dist/docs/assets/{reference_cli.md.Dm67hd2D.js → reference_cli.md.Deg7849l.js} +7 -7
- package/dist/docs/assets/{reference_cli.md.Dm67hd2D.lean.js → reference_cli.md.Deg7849l.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.ZAVUyuEX.js} +3 -3
- package/dist/docs/assets/{reference_hooks.md.Ddt5DdgJ.js → reference_hooks.md.BlM_bOg6.js} +3 -3
- package/dist/docs/assets/{reference_hooks.md.Ddt5DdgJ.lean.js → reference_hooks.md.BlM_bOg6.lean.js} +1 -1
- package/dist/docs/assets/{reference_http-api.md.oySXBO8o.js → reference_http-api.md.BwaCo-VO.js} +1 -1
- package/dist/docs/assets/{reference_playground.md.4myJPxrf.js → reference_playground.md.DLnoaczX.js} +1 -1
- package/dist/docs/assets/{reference_playground.md.4myJPxrf.lean.js → reference_playground.md.DLnoaczX.lean.js} +1 -1
- package/dist/docs/assets/{reference_project-layout.md.DuBu9a96.js → reference_project-layout.md.BEU8MtQV.js} +3 -3
- package/dist/docs/assets/{reference_project-layout.md.DuBu9a96.lean.js → reference_project-layout.md.BEU8MtQV.lean.js} +1 -1
- package/dist/docs/assets/reference_sessions.md.CyXV1MUw.js +1 -0
- 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_deploy.md.CWqi_ZxW.js +35 -0
- package/dist/docs/assets/skills_deploy.md.CWqi_ZxW.lean.js +1 -0
- package/dist/docs/assets/skills_evals.md.DFxYPErF.js +25 -0
- package/dist/docs/assets/skills_evals.md.DFxYPErF.lean.js +1 -0
- package/dist/docs/assets/skills_framework-map.md.BxLSOhSY.js +1 -0
- package/dist/docs/assets/{skills_framework-map.md.haibFyoB.lean.js → skills_framework-map.md.BxLSOhSY.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_index.md.DL7EHaQ-.js +1 -0
- package/dist/docs/assets/skills_index.md.DL7EHaQ-.lean.js +1 -0
- package/dist/docs/assets/{storage.md.BOHeqk2M.js → storage.md.BUrhJ-Zz.js} +4 -4
- package/dist/docs/assets/{storage.md.BOHeqk2M.lean.js → storage.md.BUrhJ-Zz.lean.js} +1 -1
- package/dist/docs/assets/troubleshooting.md.CYEAO9bM.js +1 -0
- package/dist/docs/building-with-agents.html +5 -5
- package/dist/docs/building-with-agents.md +3 -2
- package/dist/docs/concepts.html +5 -5
- package/dist/docs/concepts.md +2 -4
- package/dist/docs/deployment.html +7 -7
- package/dist/docs/deployment.md +7 -2
- package/dist/docs/evals.html +161 -35
- package/dist/docs/evals.md +612 -296
- package/dist/docs/guides/agent-to-agent.html +4 -4
- package/dist/docs/guides/bitbucket.html +36 -0
- package/dist/docs/guides/bitbucket.md +84 -0
- package/dist/docs/guides/cloud-agents.html +6 -6
- package/dist/docs/guides/cloud-agents.md +4 -3
- package/dist/docs/guides/convert-automation.html +4 -4
- package/dist/docs/guides/github.html +17 -7
- package/dist/docs/guides/github.md +33 -1
- package/dist/docs/guides/gitlab.html +40 -0
- package/dist/docs/guides/gitlab.md +92 -0
- package/dist/docs/guides/grokbot-agents.html +6 -6
- package/dist/docs/guides/grokbot-agents.md +2 -2
- package/dist/docs/guides/human-in-the-loop.html +4 -4
- package/dist/docs/guides/improve.html +40 -0
- package/dist/docs/guides/improve.md +91 -0
- package/dist/docs/guides/mcp-oauth.html +4 -4
- package/dist/docs/guides/opentelemetry.html +5 -5
- package/dist/docs/guides/slack.html +7 -7
- package/dist/docs/guides/slack.md +2 -1
- package/dist/docs/guides/webhooks.html +6 -6
- package/dist/docs/guides/webhooks.md +4 -2
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +6 -6
- package/dist/docs/hillclimbing.md +2 -2
- package/dist/docs/index.html +6 -6
- package/dist/docs/index.md +14 -6
- package/dist/docs/llms-full.txt +1274 -814
- package/dist/docs/llms.txt +7 -5
- package/dist/docs/quickstart.html +4 -4
- package/dist/docs/reference/agent-config.html +6 -6
- package/dist/docs/reference/agent-config.md +5 -2
- package/dist/docs/reference/artifacts.html +4 -4
- package/dist/docs/reference/channels.html +6 -6
- package/dist/docs/reference/channels.md +16 -3
- package/dist/docs/reference/cli.html +11 -11
- package/dist/docs/reference/cli.md +24 -15
- package/dist/docs/reference/connections.html +6 -6
- package/dist/docs/reference/connections.md +2 -1
- package/dist/docs/reference/extensions.html +8 -8
- package/dist/docs/reference/extensions.md +2 -3
- package/dist/docs/reference/hooks.html +7 -7
- package/dist/docs/reference/hooks.md +9 -12
- package/dist/docs/reference/http-api.html +6 -6
- package/dist/docs/reference/http-api.md +2 -3
- package/dist/docs/reference/instructions.html +4 -4
- package/dist/docs/reference/playground.html +5 -5
- package/dist/docs/reference/playground.md +0 -4
- package/dist/docs/reference/project-layout.html +7 -7
- package/dist/docs/reference/project-layout.md +1 -8
- package/dist/docs/reference/prompt.html +4 -4
- package/dist/docs/reference/result.html +4 -4
- package/dist/docs/reference/schedules.html +4 -4
- package/dist/docs/reference/sessions.html +5 -5
- package/dist/docs/reference/sessions.md +1 -2
- package/dist/docs/reference/skills.html +4 -4
- package/dist/docs/reference/subagents.html +4 -4
- package/dist/docs/reference/tools.html +4 -4
- package/dist/docs/scaffolding-agents.html +5 -5
- package/dist/docs/scaffolding-agents.md +2 -1
- package/dist/docs/skills/create-agent.html +6 -6
- package/dist/docs/skills/create-agent.md +1 -1
- package/dist/docs/skills/debug.html +5 -5
- package/dist/docs/skills/debug.md +1 -1
- package/dist/docs/skills/deploy.html +61 -0
- package/dist/docs/skills/deploy.md +161 -0
- package/dist/docs/skills/evals.html +8 -8
- package/dist/docs/skills/evals.md +44 -6
- package/dist/docs/skills/framework-map.html +5 -5
- package/dist/docs/skills/framework-map.md +5 -4
- package/dist/docs/skills/github.html +6 -6
- package/dist/docs/skills/github.md +1 -1
- package/dist/docs/skills/hillclimb.html +4 -4
- package/dist/docs/skills/index.html +6 -6
- package/dist/docs/skills/index.md +1 -1
- package/dist/docs/skills/mcp-auth.html +4 -4
- package/dist/docs/skills/otel.html +4 -4
- package/dist/docs/skills/setup-slack.html +4 -4
- package/dist/docs/storage.html +8 -8
- package/dist/docs/storage.md +15 -24
- package/dist/docs/templates/agentic-owners.html +4 -4
- package/dist/docs/templates/agents-md.html +4 -4
- package/dist/docs/templates/code-wiki.html +4 -4
- package/dist/docs/templates/demo.html +4 -4
- package/dist/docs/templates/grokbot-agents.html +4 -4
- package/dist/docs/templates/pr-autofixer.html +4 -4
- package/dist/docs/templates/security-help.html +4 -4
- package/dist/docs/templates/security-reviewer.html +4 -4
- package/dist/docs/templates/triage.html +4 -4
- package/dist/docs/troubleshooting.html +5 -5
- 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/extensions.d.ts +2 -3
- package/dist/extensions.d.ts.map +1 -1
- package/dist/extensions.js +2 -5
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/dist/internal/authored-alias-hooks.d.ts +5 -0
- package/dist/internal/authored-alias-hooks.d.ts.map +1 -1
- package/dist/internal/authored-alias-hooks.js +17 -0
- package/dist/internal/authored-loaders.d.ts +4 -0
- package/dist/internal/authored-loaders.d.ts.map +1 -1
- package/dist/internal/authored-loaders.js +21 -2
- 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 +8 -2
- package/dist/internal/cli-ax.d.ts.map +1 -1
- package/dist/internal/cli-ax.js +100 -3
- 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 +38 -14
- 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/continuation-channel.d.ts.map +1 -1
- package/dist/internal/continuation-channel.js +2 -2
- package/dist/internal/continuation-identity.js +8 -3
- 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 +27 -0
- package/dist/internal/deploy-client.d.ts.map +1 -1
- package/dist/internal/deploy-client.js +32 -0
- package/dist/internal/deploy-manifest.d.ts +23 -0
- package/dist/internal/deploy-manifest.d.ts.map +1 -1
- package/dist/internal/deploy-manifest.js +84 -1
- 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 +1 -1
- package/dist/internal/discovery/agent.d.ts.map +1 -1
- package/dist/internal/discovery/agent.js +0 -5
- package/dist/internal/discovery/extension-overlay.d.ts +1 -2
- package/dist/internal/discovery/extension-overlay.d.ts.map +1 -1
- package/dist/internal/discovery/extension-overlay.js +0 -14
- package/dist/internal/discovery/extensions.d.ts +1 -2
- package/dist/internal/discovery/extensions.d.ts.map +1 -1
- package/dist/internal/discovery/extensions.js +4 -22
- package/dist/internal/discovery/info.d.ts.map +1 -1
- package/dist/internal/discovery/info.js +42 -24
- package/dist/internal/discovery/modules.js +0 -1
- package/dist/internal/discovery/project.d.ts.map +1 -1
- package/dist/internal/discovery/project.js +0 -16
- package/dist/internal/eval-runner.js +0 -1
- package/dist/internal/framework-file-storage.d.ts +4 -5
- package/dist/internal/framework-file-storage.d.ts.map +1 -1
- package/dist/internal/framework-file-storage.js +4 -5
- package/dist/internal/framework-storage-selection.d.ts +2 -2
- package/dist/internal/framework-storage-selection.js +2 -2
- 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 +42 -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 +41 -0
- package/dist/internal/hosted-delivery-protocol.d.ts.map +1 -1
- package/dist/internal/hosted-delivery-protocol.js +249 -0
- package/dist/internal/hosted-delivery.d.ts +10 -1
- package/dist/internal/hosted-delivery.d.ts.map +1 -1
- package/dist/internal/hosted-delivery.js +100 -22
- 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/init-scaffold.d.ts.map +1 -1
- package/dist/internal/init-scaffold.js +1 -2
- package/dist/internal/install-cursor-skills.d.ts +5 -2
- package/dist/internal/install-cursor-skills.d.ts.map +1 -1
- package/dist/internal/install-cursor-skills.js +25 -5
- 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/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 +2 -0
- package/dist/internal/reminder-control-plane-protocol.d.ts.map +1 -1
- package/dist/internal/reminder-control-plane-protocol.js +9 -2
- package/dist/internal/reminder-runner.d.ts +8 -0
- package/dist/internal/reminder-runner.d.ts.map +1 -1
- package/dist/internal/reminder-runner.js +36 -9
- 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/run-client.d.ts +1 -1
- package/dist/internal/sdk-runner.d.ts.map +1 -1
- package/dist/internal/sdk-runner.js +5 -4
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +57 -70
- package/dist/internal/session-engine.d.ts +7 -41
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +110 -227
- package/dist/internal/storage-coordinator.d.ts +5 -19
- package/dist/internal/storage-coordinator.d.ts.map +1 -1
- package/dist/internal/storage-coordinator.js +3 -62
- package/dist/internal/storage-roles.d.ts +4 -9
- package/dist/internal/storage-roles.d.ts.map +1 -1
- package/dist/internal/storage-roles.js +2 -2
- package/dist/playground/assets/index-Bhxzrcf6.css +1 -0
- package/dist/playground/assets/index-CqLX5uF3.js +67 -0
- package/dist/playground/index.html +2 -2
- package/dist/storage-backends/cursor-hosted-v2.d.ts +4 -5
- package/dist/storage-backends/cursor-hosted-v2.d.ts.map +1 -1
- package/dist/storage-backends/cursor-hosted-v2.js +4 -5
- package/dist/storage-backends/cursor-hosted.d.ts +7 -2
- package/dist/storage-backends/cursor-hosted.d.ts.map +1 -1
- package/dist/storage-backends/cursor-hosted.js +29 -31
- package/dist/storage-backends/file-kv.d.ts +9 -12
- package/dist/storage-backends/file-kv.d.ts.map +1 -1
- package/dist/storage-backends/file-kv.js +11 -47
- package/dist/storage-protocol.d.ts +3 -11
- package/dist/storage-protocol.d.ts.map +1 -1
- package/dist/storage-protocol.js +3 -11
- package/dist/storage.d.ts +8 -36
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +8 -44
- package/dist/types.d.ts +53 -62
- package/dist/types.d.ts.map +1 -1
- package/docs/README.md +14 -6
- package/docs/building-with-agents.md +3 -2
- package/docs/concepts.md +2 -4
- package/docs/deployment.md +7 -2
- package/docs/evals.md +613 -297
- package/docs/guides/bitbucket.md +89 -0
- package/docs/guides/cloud-agents.md +4 -3
- package/docs/guides/github.md +33 -1
- package/docs/guides/gitlab.md +97 -0
- package/docs/guides/grokbot-agents.md +2 -2
- package/docs/guides/improve.md +96 -0
- package/docs/guides/slack.md +2 -1
- package/docs/guides/webhooks.md +4 -2
- package/docs/hillclimbing.md +2 -2
- package/docs/reference/agent-config.md +5 -2
- package/docs/reference/channels.md +16 -3
- package/docs/reference/cli.md +24 -15
- package/docs/reference/connections.md +2 -1
- package/docs/reference/extensions.md +2 -3
- package/docs/reference/hooks.md +9 -12
- package/docs/reference/http-api.md +2 -3
- package/docs/reference/playground.md +0 -4
- package/docs/reference/project-layout.md +1 -8
- package/docs/reference/sessions.md +1 -2
- package/docs/scaffolding-agents.md +2 -1
- package/docs/skills/index.md +2 -2
- package/docs/storage.md +15 -24
- package/docs/troubleshooting.md +1 -1
- package/package.json +8 -7
- package/skills/create-agent/SKILL.md +1 -1
- package/skills/debug/SKILL.md +1 -1
- package/skills/deploy/SKILL.md +169 -0
- package/skills/evals/SKILL.md +45 -8
- package/skills/framework-map/SKILL.md +5 -4
- package/skills/github/SKILL.md +1 -1
- package/src/bin/agent-serve.ts +27 -2
- package/src/channels/bitbucket/api.ts +341 -0
- package/src/channels/bitbucket/binding.ts +25 -0
- package/src/channels/bitbucket/index.ts +2 -0
- package/src/channels/github/github-channel.ts +8 -8
- package/src/channels/github/types.ts +5 -0
- package/src/channels/gitlab/api.ts +123 -0
- package/src/channels/gitlab/binding.ts +12 -0
- package/src/channels/gitlab/index.ts +1 -0
- package/src/channels/origin/origin-channel.ts +29 -13
- package/src/channels/origin/types.ts +5 -0
- package/src/channels/slack/dispatch.ts +30 -0
- package/src/channels/slack/slack-channel.ts +69 -7
- 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/extensions.ts +2 -6
- package/src/index.ts +0 -3
- package/src/internal/authored-alias-hooks.ts +32 -0
- package/src/internal/authored-loaders.ts +26 -2
- 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 +111 -3
- package/src/internal/cli-cursor.ts +4 -1
- package/src/internal/cli-deploy.ts +50 -10
- 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/continuation-channel.ts +2 -1
- package/src/internal/continuation-identity.ts +10 -2
- package/src/internal/cursor/credentials.ts +35 -7
- package/src/internal/deploy-client.ts +54 -0
- package/src/internal/deploy-manifest.ts +115 -1
- package/src/internal/describe-error.ts +28 -0
- package/src/internal/discovery/agent.ts +1 -7
- package/src/internal/discovery/extension-overlay.ts +0 -18
- package/src/internal/discovery/extensions.ts +2 -26
- package/src/internal/discovery/info.ts +3 -13
- package/src/internal/discovery/modules.ts +0 -1
- package/src/internal/discovery/project.ts +0 -16
- package/src/internal/eval-runner.ts +0 -1
- package/src/internal/framework-file-storage.ts +4 -5
- package/src/internal/framework-storage-selection.ts +2 -2
- package/src/internal/guest-network.ts +43 -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 +387 -0
- package/src/internal/hosted-delivery.ts +155 -22
- 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/init-scaffold.ts +1 -2
- package/src/internal/install-cursor-skills.ts +38 -5
- package/src/internal/legacy-command-guard.ts +59 -0
- package/src/internal/platform-timers.ts +191 -0
- package/src/internal/reminder-control-plane-protocol.ts +15 -2
- package/src/internal/reminder-runner.ts +60 -9
- package/src/internal/resolve-prod-target.ts +15 -0
- package/src/internal/run-client.ts +1 -1
- package/src/internal/sdk-runner.ts +3 -2
- package/src/internal/server.ts +89 -95
- package/src/internal/session-engine.ts +155 -285
- package/src/internal/storage-coordinator.ts +5 -76
- package/src/internal/storage-roles.ts +4 -9
- package/src/storage-backends/cursor-hosted-v2.ts +4 -7
- package/src/storage-backends/cursor-hosted.ts +40 -38
- package/src/storage-backends/file-kv.ts +10 -51
- package/src/storage-protocol.ts +3 -17
- package/src/storage.ts +10 -101
- package/src/types.ts +58 -62
- package/templates/demo/README.md +10 -6
- package/templates/demo/agent/channels/github.ts +2 -0
- package/templates/demo/agent/channels/queue.ts +6 -2
- package/templates/demo/agent/lib/repos.ts +5 -0
- package/templates/demo/init.json +25 -0
- package/dist/ab.d.ts +0 -209
- package/dist/ab.d.ts.map +0 -1
- package/dist/ab.js +0 -246
- package/dist/docs/ab.html +0 -80
- package/dist/docs/ab.md +0 -332
- package/dist/docs/assets/ab.md.mlVgqvSk.js +0 -54
- package/dist/docs/assets/ab.md.mlVgqvSk.lean.js +0 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.DXXZxiMv.js +0 -1
- package/dist/docs/assets/concepts.md.DgEcZOfT.js +0 -1
- package/dist/docs/assets/evals.md.CbMoebP1.js +0 -85
- package/dist/docs/assets/evals.md.CbMoebP1.lean.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/reference_sessions.md.CueyOHSL.js +0 -1
- package/dist/docs/assets/skills_ab.md.CsFNatVx.js +0 -26
- package/dist/docs/assets/skills_ab.md.CsFNatVx.lean.js +0 -1
- package/dist/docs/assets/skills_evals.md.723kpUmA.js +0 -25
- package/dist/docs/assets/skills_evals.md.723kpUmA.lean.js +0 -1
- package/dist/docs/assets/skills_framework-map.md.haibFyoB.js +0 -1
- package/dist/docs/assets/skills_index.md.DKwIxzGg.js +0 -1
- package/dist/docs/assets/skills_index.md.DKwIxzGg.lean.js +0 -1
- package/dist/docs/assets/troubleshooting.md.Cus_YZga.js +0 -1
- package/dist/docs/skills/ab.html +0 -52
- package/dist/docs/skills/ab.md +0 -50
- package/dist/internal/ab-collector.d.ts +0 -44
- package/dist/internal/ab-collector.d.ts.map +0 -1
- package/dist/internal/ab-collector.js +0 -142
- package/dist/internal/ab-fold.d.ts +0 -36
- package/dist/internal/ab-fold.d.ts.map +0 -1
- package/dist/internal/ab-fold.js +0 -175
- package/dist/internal/ab-snapshot.d.ts +0 -68
- package/dist/internal/ab-snapshot.d.ts.map +0 -1
- package/dist/internal/ab-snapshot.js +0 -208
- package/dist/internal/discovery/ab.d.ts +0 -9
- package/dist/internal/discovery/ab.d.ts.map +0 -1
- package/dist/internal/discovery/ab.js +0 -113
- package/dist/playground/assets/index-Bq2HpEQB.js +0 -67
- package/dist/playground/assets/index-CZKKNlmb.css +0 -1
- package/docs/ab.md +0 -337
- package/skills/ab/SKILL.md +0 -58
- package/src/ab.ts +0 -430
- package/src/internal/ab-collector.ts +0 -200
- package/src/internal/ab-fold.ts +0 -232
- package/src/internal/ab-snapshot.ts +0 -331
- package/src/internal/discovery/ab.ts +0 -131
- /package/dist/docs/assets/{concepts.md.DgEcZOfT.lean.js → concepts.md.B4o63Gul.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/{guides_webhooks.md.DKdA43Qm.lean.js → guides_webhooks.md.CJK484ex.lean.js} +0 -0
- /package/dist/docs/assets/{hillclimbing.md.CpTGTCle.lean.js → hillclimbing.md.BOiVo1tf.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.ZAVUyuEX.lean.js} +0 -0
- /package/dist/docs/assets/{reference_http-api.md.oySXBO8o.lean.js → reference_http-api.md.BwaCo-VO.lean.js} +0 -0
- /package/dist/docs/assets/{reference_sessions.md.CueyOHSL.lean.js → reference_sessions.md.CyXV1MUw.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_github.md.D0JahM8c.lean.js → skills_github.md.hgFX_oKY.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,7 @@ 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";
|
|
132
134
|
import {
|
|
133
135
|
HOSTED_DELIVERY_HEADER,
|
|
134
136
|
HOSTED_GUEST_RETRY_TERMINAL,
|
|
@@ -143,7 +145,6 @@ import {
|
|
|
143
145
|
readJsonObject,
|
|
144
146
|
requireSessionOwner,
|
|
145
147
|
} from "./http-channel.js";
|
|
146
|
-
import { validateToolInput } from "./json-schema.js";
|
|
147
148
|
import { DEFAULT_SERVE_PORT, listenHttpServer } from "./listen-port.js";
|
|
148
149
|
import {
|
|
149
150
|
createLocalControlPlane,
|
|
@@ -176,7 +177,10 @@ import {
|
|
|
176
177
|
PLATFORM_SCHEDULE_CATALOG_FILENAME,
|
|
177
178
|
syncHostedPlatformSchedules,
|
|
178
179
|
} from "./platform-schedule-sync.js";
|
|
179
|
-
import {
|
|
180
|
+
import {
|
|
181
|
+
createCursorHostedPlatformTimers,
|
|
182
|
+
createCursorHostedReminderControlPlane,
|
|
183
|
+
} from "./platform-timers.js";
|
|
180
184
|
import {
|
|
181
185
|
type AgentIndexEntry,
|
|
182
186
|
renderAgentsIndexHtml,
|
|
@@ -193,6 +197,11 @@ import {
|
|
|
193
197
|
collectMemoryHealthFields,
|
|
194
198
|
sumEventLogStats,
|
|
195
199
|
} from "./process-memory-telemetry.js";
|
|
200
|
+
import {
|
|
201
|
+
claimFromDescriptor,
|
|
202
|
+
type ReminderControlPlane,
|
|
203
|
+
type ReminderFireDescriptor,
|
|
204
|
+
} from "./reminder-control-plane-protocol.js";
|
|
196
205
|
import {
|
|
197
206
|
ReminderRunner,
|
|
198
207
|
ReminderValidationError,
|
|
@@ -210,6 +219,7 @@ import { RuntimeDispatchingRunner } from "./runtime-dispatch-runner.js";
|
|
|
210
219
|
import { ScheduleRunner, UnknownScheduleError } from "./schedule-runner.js";
|
|
211
220
|
import { type AgentRunner, CursorSdkRunner } from "./sdk-runner.js";
|
|
212
221
|
import {
|
|
222
|
+
HTTP_CHANNEL_ID,
|
|
213
223
|
InvalidContinuationTokenError,
|
|
214
224
|
SessionEngine,
|
|
215
225
|
ToolInputError,
|
|
@@ -252,6 +262,11 @@ interface MountedRuntime {
|
|
|
252
262
|
scheduleRunner: ScheduleRunner;
|
|
253
263
|
reminderRunner: ReminderRunner;
|
|
254
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;
|
|
255
270
|
/** Playground eval batches (`/v1/dev/evals`); loopbackUrl set after listen. */
|
|
256
271
|
evalRuns: EvalRunStore;
|
|
257
272
|
}
|
|
@@ -325,9 +340,12 @@ export async function startServer(
|
|
|
325
340
|
noControlPlane?: boolean;
|
|
326
341
|
/** `--cursor-scm-proxy`: every cursorAccount SCM pack routes via the backend forwarder. */
|
|
327
342
|
cursorScmProxy?: boolean;
|
|
343
|
+
/** Deprecated alias (`--cursor-github-proxy`); same effect as cursorScmProxy. */
|
|
344
|
+
cursorGithubProxy?: boolean;
|
|
328
345
|
};
|
|
329
346
|
const noControlPlane = hosted.noControlPlane === true;
|
|
330
|
-
const scmProxyRequested =
|
|
347
|
+
const scmProxyRequested =
|
|
348
|
+
hosted.cursorScmProxy === true || hosted.cursorGithubProxy === true;
|
|
331
349
|
const runSchedules = options.schedules ?? !dev;
|
|
332
350
|
const runReminders = options.reminders ?? !dev;
|
|
333
351
|
|
|
@@ -371,13 +389,15 @@ export async function startServer(
|
|
|
371
389
|
// One resolution for every Cursor credential consumer (SDK runner, account
|
|
372
390
|
// MCP bridge, SCM event relay, GitHub credentials): explicit option →
|
|
373
391
|
// CURSOR_API_KEY → CURSOR_API_KEY_FILE (or the hosted default path) →
|
|
374
|
-
// stored `agent-sdk login`. SDK / GitHub /
|
|
375
|
-
// 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.
|
|
376
395
|
const accountKey = await resolveApiKey(
|
|
377
396
|
options.apiKey === undefined ? {} : { apiKey: options.apiKey }
|
|
378
397
|
);
|
|
379
398
|
// First present source wins (we define the order): option → env → file →
|
|
380
|
-
// 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.
|
|
381
401
|
const liveCursorApiKey = (): string | undefined =>
|
|
382
402
|
resolveApiKeySync(
|
|
383
403
|
options.apiKey === undefined ? {} : { apiKey: options.apiKey }
|
|
@@ -850,7 +870,7 @@ export async function startServer(
|
|
|
850
870
|
const scheduleRunner = new ScheduleRunner(engine, project, logger);
|
|
851
871
|
let reminderRunner!: ReminderRunner;
|
|
852
872
|
const architecture = project.agent.architecture;
|
|
853
|
-
const useReminderCpProtocol =
|
|
873
|
+
const useReminderCpProtocol = architecture === "v2";
|
|
854
874
|
const localControlPlane = noControlPlane
|
|
855
875
|
? undefined
|
|
856
876
|
: await createLocalControlPlane({
|
|
@@ -873,6 +893,13 @@ export async function startServer(
|
|
|
873
893
|
const timerClient = noControlPlane
|
|
874
894
|
? createCursorHostedPlatformTimers()
|
|
875
895
|
: localControlPlane;
|
|
896
|
+
const hostedReminderControlPlane =
|
|
897
|
+
noControlPlane && useReminderCpProtocol
|
|
898
|
+
? createCursorHostedReminderControlPlane()
|
|
899
|
+
: undefined;
|
|
900
|
+
const reminderControlPlane = useReminderCpProtocol
|
|
901
|
+
? (localControlPlane ?? hostedReminderControlPlane)
|
|
902
|
+
: undefined;
|
|
876
903
|
reminderRunner = new ReminderRunner(engine, logger, timerClient, {
|
|
877
904
|
namedHandlers: project.reminders ?? [],
|
|
878
905
|
// Architecture v2 rejects anonymous run/until everywhere (local + hosted).
|
|
@@ -881,7 +908,7 @@ export async function startServer(
|
|
|
881
908
|
architecture,
|
|
882
909
|
}),
|
|
883
910
|
architecture,
|
|
884
|
-
controlPlane:
|
|
911
|
+
controlPlane: reminderControlPlane,
|
|
885
912
|
});
|
|
886
913
|
const evalRuns = new EvalRunStore(
|
|
887
914
|
project.rootDir,
|
|
@@ -920,6 +947,7 @@ export async function startServer(
|
|
|
920
947
|
...(localControlPlane === undefined
|
|
921
948
|
? {}
|
|
922
949
|
: { controlPlane: localControlPlane }),
|
|
950
|
+
...(reminderControlPlane === undefined ? {} : { reminderControlPlane }),
|
|
923
951
|
};
|
|
924
952
|
runtimes.push(runtime);
|
|
925
953
|
const accountRefs = accountRefsBySlug.get(slug);
|
|
@@ -1479,7 +1507,14 @@ function mountAgentRoutes(
|
|
|
1479
1507
|
evictSdkSession?: (sessionId: string) => void;
|
|
1480
1508
|
}
|
|
1481
1509
|
): void {
|
|
1482
|
-
const {
|
|
1510
|
+
const {
|
|
1511
|
+
slug,
|
|
1512
|
+
project,
|
|
1513
|
+
engine,
|
|
1514
|
+
scheduleRunner,
|
|
1515
|
+
reminderRunner,
|
|
1516
|
+
reminderControlPlane,
|
|
1517
|
+
} = runtime;
|
|
1483
1518
|
const {
|
|
1484
1519
|
dev,
|
|
1485
1520
|
playground,
|
|
@@ -1538,7 +1573,12 @@ function mountAgentRoutes(
|
|
|
1538
1573
|
registerHostedDeliveryRoute({
|
|
1539
1574
|
router,
|
|
1540
1575
|
base,
|
|
1541
|
-
|
|
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
|
+
],
|
|
1542
1582
|
buildHandlerArgs: (channelId, hostedSessionId) =>
|
|
1543
1583
|
buildChannelHandlerArgs({
|
|
1544
1584
|
runtime,
|
|
@@ -1547,6 +1587,33 @@ function mountAgentRoutes(
|
|
|
1547
1587
|
}),
|
|
1548
1588
|
fireReminder: (reminderId, fireCount) =>
|
|
1549
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
|
+
},
|
|
1550
1617
|
drainSessionDurability: (sessionId) =>
|
|
1551
1618
|
engine.drainSessionDurability(sessionId),
|
|
1552
1619
|
flushOtel: args.flushOtel,
|
|
@@ -1710,22 +1777,6 @@ function mountAgentRoutes(
|
|
|
1710
1777
|
},
|
|
1711
1778
|
});
|
|
1712
1779
|
|
|
1713
|
-
// Playground A/Bs tab: fold durable event streams into per-session
|
|
1714
|
-
// assignments and aggregate arm metrics (built-ins + derive).
|
|
1715
|
-
router.add({
|
|
1716
|
-
method: "GET",
|
|
1717
|
-
pattern: `${base}/v1/abs`,
|
|
1718
|
-
auth: httpAuth,
|
|
1719
|
-
handler: async (_request, ctx) => {
|
|
1720
|
-
const includeAll =
|
|
1721
|
-
dev === true &&
|
|
1722
|
-
(args.allowAnonymous === true ||
|
|
1723
|
-
(typeof ctx.requestIp === "string" &&
|
|
1724
|
-
isLoopbackAddress(ctx.requestIp)));
|
|
1725
|
-
return jsonResponse(await engine.abSnapshot(ctx.auth, { includeAll }));
|
|
1726
|
-
},
|
|
1727
|
-
});
|
|
1728
|
-
|
|
1729
1780
|
// Durable artifacts (ctx.artifacts / tag_artifact), newest-updated first.
|
|
1730
1781
|
router.add({
|
|
1731
1782
|
method: "GET",
|
|
@@ -2360,75 +2411,18 @@ function mountAgentRoutes(
|
|
|
2360
2411
|
method: channelRoute.method,
|
|
2361
2412
|
pattern: `${base}/v1/channels/${channel.id}${channelRoute.path}`,
|
|
2362
2413
|
auth: channelAuth,
|
|
2363
|
-
handler:
|
|
2364
|
-
|
|
2365
|
-
|
|
2366
|
-
|
|
2367
|
-
|
|
2368
|
-
|
|
2369
|
-
|
|
2370
|
-
|
|
2371
|
-
|
|
2372
|
-
|
|
2373
|
-
|
|
2374
|
-
|
|
2375
|
-
);
|
|
2376
|
-
const queryValidation = validateToolInput(
|
|
2377
|
-
channelRoute.querySchema,
|
|
2378
|
-
rawQuery
|
|
2379
|
-
);
|
|
2380
|
-
if (!queryValidation.ok) {
|
|
2381
|
-
return jsonResponse(
|
|
2382
|
-
{ error: queryValidation.message },
|
|
2383
|
-
{ status: 400 }
|
|
2384
|
-
);
|
|
2385
|
-
}
|
|
2386
|
-
handlerArgs.query = queryValidation.value;
|
|
2387
|
-
}
|
|
2388
|
-
|
|
2389
|
-
if (channelRoute.bodySchema !== undefined) {
|
|
2390
|
-
// Buffer once so handlers that need the raw body (e.g. GitHub
|
|
2391
|
-
// HMAC) can still read `request.text()` / `request.json()`.
|
|
2392
|
-
let bodyText: string;
|
|
2393
|
-
try {
|
|
2394
|
-
bodyText = await request.text();
|
|
2395
|
-
} catch {
|
|
2396
|
-
return jsonResponse(
|
|
2397
|
-
{ error: "Failed to read request body" },
|
|
2398
|
-
{ status: 400 }
|
|
2399
|
-
);
|
|
2400
|
-
}
|
|
2401
|
-
let rawBody: unknown;
|
|
2402
|
-
try {
|
|
2403
|
-
rawBody = bodyText === "" ? {} : JSON.parse(bodyText);
|
|
2404
|
-
} catch {
|
|
2405
|
-
return jsonResponse(
|
|
2406
|
-
{ error: "Request body must be valid JSON" },
|
|
2407
|
-
{ status: 400 }
|
|
2408
|
-
);
|
|
2409
|
-
}
|
|
2410
|
-
const bodyValidation = validateToolInput(
|
|
2411
|
-
channelRoute.bodySchema,
|
|
2412
|
-
rawBody
|
|
2413
|
-
);
|
|
2414
|
-
if (!bodyValidation.ok) {
|
|
2415
|
-
return jsonResponse(
|
|
2416
|
-
{ error: bodyValidation.message },
|
|
2417
|
-
{ status: 400 }
|
|
2418
|
-
);
|
|
2419
|
-
}
|
|
2420
|
-
handlerArgs.body = bodyValidation.value;
|
|
2421
|
-
request = new Request(request.url, {
|
|
2422
|
-
method: request.method,
|
|
2423
|
-
headers: request.headers,
|
|
2424
|
-
body: bodyText === "" ? undefined : bodyText,
|
|
2425
|
-
// node: undici / fetch may require duplex for streamed bodies;
|
|
2426
|
-
// a string body does not.
|
|
2427
|
-
});
|
|
2428
|
-
}
|
|
2429
|
-
|
|
2430
|
-
return channelRoute.handler(request, handlerArgs);
|
|
2431
|
-
},
|
|
2414
|
+
handler: (request, ctx) =>
|
|
2415
|
+
invokeChannelRoute({
|
|
2416
|
+
route: channelRoute,
|
|
2417
|
+
request,
|
|
2418
|
+
handlerArgs: buildChannelHandlerArgs({
|
|
2419
|
+
runtime,
|
|
2420
|
+
channelId: channel.id,
|
|
2421
|
+
params: ctx.params,
|
|
2422
|
+
requestIp: ctx.requestIp,
|
|
2423
|
+
auth: ctx.auth,
|
|
2424
|
+
}),
|
|
2425
|
+
}),
|
|
2432
2426
|
});
|
|
2433
2427
|
}
|
|
2434
2428
|
}
|