@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/dist/index.d.ts
CHANGED
|
@@ -14,11 +14,10 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import { type LoadAgentProjectOptions } from "./internal/discovery.js";
|
|
16
16
|
import type { AgentConfig, AgentConfigDefinition, AgentProject, AgentServeHandle, InstructionsConfig, InstructionsDefinition, ServeOptions } from "./types.js";
|
|
17
|
-
export { defineAB } from "./ab.js";
|
|
18
17
|
export { defineArtifacts } from "./artifacts.js";
|
|
19
18
|
export { allowAll, bearerAuth, DELETE, defineChannel, GET, httpChannel, localDev, localDevStrict, loopbackGitHubDev, loopbackOnly, PATCH, POST, PUT, publicEndpoint, } from "./channels.js";
|
|
20
19
|
export { defineConnection } from "./connections.js";
|
|
21
|
-
export { cursorPlugin, defineExtension, disable,
|
|
20
|
+
export { cursorPlugin, defineExtension, disable, disableArtifacts, disableChannel, disableConnection, disableHook, disableInstructions, disableSchedule, disableSkill, disableSubagent, disableTool, } from "./extensions.js";
|
|
22
21
|
export type { DirEntry, EditQuery, EditResult, FileInfo, FileSystem, GrepQuery, GrepResult, SearchQuery, SearchResult, } from "./filesystem.js";
|
|
23
22
|
export { DeleteNotSupportedError, EditError, emptyFs, FileNotFoundError, hostFs, InvalidGrepPatternError, isFileNotFoundError, NoMountError, overlayFs, PathError, ReadOnlyMountError, strReplaceOnFileSystem, tempFs, unionFs, WriteFailedError, } from "./filesystem.js";
|
|
24
23
|
export { defineHook } from "./hooks.js";
|
|
@@ -44,7 +43,7 @@ export { defineReminder } from "./reminders.js";
|
|
|
44
43
|
export { defineResult } from "./result.js";
|
|
45
44
|
export { defineSchedule } from "./schedules.js";
|
|
46
45
|
export { defineSkill } from "./skills.js";
|
|
47
|
-
export type { DurableSessionRecord, DurableSessionSummary,
|
|
46
|
+
export type { DurableSessionRecord, DurableSessionSummary, StorageCasTable, StorageConfig, StorageContext, StorageDefinition, StorageEntry, StorageEvalsTable, StorageKeys, StoragePolicy, StorageRestorePolicy, } from "./storage.js";
|
|
48
47
|
export { AGENTSDK_STORAGE_KEY_ROOT, agentSdkStorageKeys, defineStorage, isDurableSessionRecordKey, parseDurableSessionRecord, STORAGE_KEY_ROOT, storageKeys, storageKeysForArchitecture, summarizeDurableSessionRecord, } from "./storage.js";
|
|
49
48
|
export { defineTool } from "./tools.js";
|
|
50
49
|
export type * from "./types.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,EACL,KAAK,uBAAuB,EAE7B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EACV,WAAW,EACX,qBAAqB,EACrB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -37,12 +37,11 @@ import { brandDefinition } from "./internal/brand.js";
|
|
|
37
37
|
import { setDevMode } from "./internal/dev-mode.js";
|
|
38
38
|
import { resolveAgentMounts, } from "./internal/discovery.js";
|
|
39
39
|
import { startServer } from "./internal/server.js";
|
|
40
|
-
export { defineAB } from "./ab.js";
|
|
41
40
|
export { defineArtifacts } from "./artifacts.js";
|
|
42
41
|
// Authoring helpers (also available on their focused subpath exports).
|
|
43
42
|
export { allowAll, bearerAuth, DELETE, defineChannel, GET, httpChannel, localDev, localDevStrict, loopbackGitHubDev, loopbackOnly, PATCH, POST, PUT, publicEndpoint, } from "./channels.js";
|
|
44
43
|
export { defineConnection } from "./connections.js";
|
|
45
|
-
export { cursorPlugin, defineExtension, disable,
|
|
44
|
+
export { cursorPlugin, defineExtension, disable, disableArtifacts, disableChannel, disableConnection, disableHook, disableInstructions, disableSchedule, disableSkill, disableSubagent, disableTool, } from "./extensions.js";
|
|
46
45
|
export { DeleteNotSupportedError, EditError, emptyFs, FileNotFoundError, hostFs, InvalidGrepPatternError, isFileNotFoundError, NoMountError, overlayFs, PathError, ReadOnlyMountError, strReplaceOnFileSystem, tempFs, unionFs, WriteFailedError, } from "./filesystem.js";
|
|
47
46
|
export { defineHook } from "./hooks.js";
|
|
48
47
|
export { InvalidAsOfError, VacuousTimeArgsError, } from "./internal/as-of.js";
|
|
@@ -18,6 +18,11 @@
|
|
|
18
18
|
*/
|
|
19
19
|
export interface AuthoredAliasHookData {
|
|
20
20
|
directAliases: Record<string, string>;
|
|
21
|
+
/**
|
|
22
|
+
* Framework exports omitted from the running distribution. Resolve these
|
|
23
|
+
* against an authored project's `anysphere-source` package condition.
|
|
24
|
+
*/
|
|
25
|
+
sourceFallbackAliases?: string[];
|
|
21
26
|
/**
|
|
22
27
|
* `file:` URL of the running `@cursor/july` package.json. Bare imports
|
|
23
28
|
* from monorepo `packages/agent-serve/` source retry against this parent
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authored-alias-hooks.d.ts","sourceRoot":"","sources":["../../src/internal/authored-alias-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;
|
|
1
|
+
{"version":3,"file":"authored-alias-hooks.d.ts","sourceRoot":"","sources":["../../src/internal/authored-alias-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAQH,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC;;;OAGG;IACH,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC;;;;OAIG;IACH,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACtC;AAQD,wBAAgB,UAAU,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAU5D;AAED,UAAU,aAAa;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,KAAK,WAAW,GAAG,CACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,KACb,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAE5C,wBAAgB,OAAO,CACrB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,GACvB,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAqBxC"}
|
|
@@ -19,12 +19,15 @@
|
|
|
19
19
|
// Null-prototype copies so specifiers like "constructor" or "__proto__"
|
|
20
20
|
// can never resolve to inherited Object.prototype members.
|
|
21
21
|
let directAliases = toNullProtoMap({});
|
|
22
|
+
let sourceFallbackAliases = toNullProtoMap({});
|
|
22
23
|
let sourceTreeFallbackParentURL;
|
|
23
24
|
function toNullProtoMap(source) {
|
|
24
25
|
return Object.assign(Object.create(null), source);
|
|
25
26
|
}
|
|
26
27
|
export function initialize(data) {
|
|
28
|
+
var _a;
|
|
27
29
|
directAliases = toNullProtoMap(data.directAliases);
|
|
30
|
+
sourceFallbackAliases = toNullProtoMap(Object.fromEntries(((_a = data.sourceFallbackAliases) !== null && _a !== void 0 ? _a : []).map((specifier) => [specifier, "1"])));
|
|
28
31
|
const parent = data.sourceTreeFallbackParentURL;
|
|
29
32
|
sourceTreeFallbackParentURL =
|
|
30
33
|
typeof parent === "string" && parent !== "" ? parent : undefined;
|
|
@@ -34,6 +37,9 @@ export function resolve(specifier, context, nextResolve) {
|
|
|
34
37
|
if (direct !== undefined) {
|
|
35
38
|
return { url: direct, shortCircuit: true };
|
|
36
39
|
}
|
|
40
|
+
if (sourceFallbackAliases[specifier] !== undefined) {
|
|
41
|
+
return nextResolve(specifier, withCondition(context, "anysphere-source"));
|
|
42
|
+
}
|
|
37
43
|
if (sourceTreeFallbackParentURL !== undefined &&
|
|
38
44
|
isBarePackageSpecifier(specifier) &&
|
|
39
45
|
isMonorepoAgentServeSource(parentURLOf(context))) {
|
|
@@ -59,6 +65,17 @@ function withParentURL(context, parentURL) {
|
|
|
59
65
|
}
|
|
60
66
|
return { parentURL };
|
|
61
67
|
}
|
|
68
|
+
function withCondition(context, condition) {
|
|
69
|
+
const record = context !== null && typeof context === "object"
|
|
70
|
+
? context
|
|
71
|
+
: {};
|
|
72
|
+
const conditions = Array.isArray(record["conditions"])
|
|
73
|
+
? record["conditions"].filter((value) => typeof value === "string")
|
|
74
|
+
: [];
|
|
75
|
+
return Object.assign(Object.assign({}, record), { conditions: conditions.includes(condition)
|
|
76
|
+
? conditions
|
|
77
|
+
: [...conditions, condition] });
|
|
78
|
+
}
|
|
62
79
|
function isBarePackageSpecifier(specifier) {
|
|
63
80
|
if (specifier.length === 0) {
|
|
64
81
|
return false;
|
|
@@ -31,6 +31,10 @@
|
|
|
31
31
|
* not treat it as its HMR timestamp and collapse the specifier to the path.
|
|
32
32
|
*/
|
|
33
33
|
export declare function authoredModuleSpecifier(absolutePath: string, mtimeMs: number): string;
|
|
34
|
+
export declare function partitionFrameworkAliases(aliases: Record<string, string>): {
|
|
35
|
+
directAliases: Record<string, string>;
|
|
36
|
+
sourceFallbackAliases: string[];
|
|
37
|
+
};
|
|
34
38
|
/**
|
|
35
39
|
* Dynamically import an authored TypeScript/JavaScript module, re-reading it
|
|
36
40
|
* from disk when the file's mtime has changed since the last import.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authored-loaders.d.ts","sourceRoot":"","sources":["../../src/internal/authored-loaders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;
|
|
1
|
+
{"version":3,"file":"authored-loaders.d.ts","sourceRoot":"","sources":["../../src/internal/authored-loaders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAwBH;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,GACd,MAAM,CAIR;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG;IAC1E,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,qBAAqB,EAAE,MAAM,EAAE,CAAC;CACjC,CAWA;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAclC;AAID;;;;;GAKG;AACH,wBAAgB,6BAA6B,IAAI,OAAO,CAAC,IAAI,CAAC,CAS7D"}
|
|
@@ -26,10 +26,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
26
26
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
27
27
|
});
|
|
28
28
|
};
|
|
29
|
+
import { existsSync } from "node:fs";
|
|
29
30
|
import { stat } from "node:fs/promises";
|
|
30
31
|
import { register as registerModuleHooks } from "node:module";
|
|
31
32
|
import { join } from "node:path";
|
|
32
|
-
import { pathToFileURL } from "node:url";
|
|
33
|
+
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
33
34
|
import { CLI_COMMAND_NAME, frameworkAliases, isCompiledDistribution, packageRootDir, } from "./distribution.js";
|
|
34
35
|
/**
|
|
35
36
|
* Cross-copy markers: a user project with its own `@cursor/july` install
|
|
@@ -57,6 +58,19 @@ export function authoredModuleSpecifier(absolutePath, mtimeMs) {
|
|
|
57
58
|
url.searchParams.set("mtime", String(Math.trunc(mtimeMs)));
|
|
58
59
|
return url.href;
|
|
59
60
|
}
|
|
61
|
+
export function partitionFrameworkAliases(aliases) {
|
|
62
|
+
const directAliases = {};
|
|
63
|
+
const sourceFallbackAliases = [];
|
|
64
|
+
for (const [specifier, url] of Object.entries(aliases)) {
|
|
65
|
+
if (existsSync(fileURLToPath(url))) {
|
|
66
|
+
directAliases[specifier] = url;
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
sourceFallbackAliases.push(specifier);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return { directAliases, sourceFallbackAliases };
|
|
73
|
+
}
|
|
60
74
|
/**
|
|
61
75
|
* Dynamically import an authored TypeScript/JavaScript module, re-reading it
|
|
62
76
|
* from disk when the file's mtime has changed since the last import.
|
|
@@ -153,8 +167,13 @@ function registerFrameworkAliases() {
|
|
|
153
167
|
return;
|
|
154
168
|
}
|
|
155
169
|
const hooksUrl = new URL("./authored-alias-hooks.js", import.meta.url);
|
|
170
|
+
const { directAliases, sourceFallbackAliases } = partitionFrameworkAliases(frameworkAliases());
|
|
156
171
|
const data = {
|
|
157
|
-
directAliases
|
|
172
|
+
directAliases,
|
|
173
|
+
// Internal-only exports stay out of the public package. When one is
|
|
174
|
+
// mounted by an agent in this source checkout, resolve that one import
|
|
175
|
+
// through the checkout's `anysphere-source` export instead.
|
|
176
|
+
sourceFallbackAliases,
|
|
158
177
|
// Hosted factory agents relative-import this package's src/ from a
|
|
159
178
|
// monorepo checkout while npm install ran only in the agent directory.
|
|
160
179
|
// Bare specifiers from that tree retry against this package.json.
|
|
@@ -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
|
+
}
|
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
* init / run / trajectory / eval
|
|
4
4
|
*
|
|
5
5
|
* Coding agents get JSON-first output, ephemeral local servers, and
|
|
6
|
-
* filesystem-first evals under evals/ (*.eval.ts).
|
|
7
|
-
* (`defineAB` under `agent/ab`) plug into serve — there is no `ab` CLI.
|
|
6
|
+
* filesystem-first evals under evals/ (*.eval.ts).
|
|
8
7
|
*/
|
|
9
8
|
import type { EvalAssertionResult } from "../evals.js";
|
|
10
9
|
export interface AxCliOptions {
|
|
@@ -113,6 +112,13 @@ export interface AxCliOptions {
|
|
|
113
112
|
resume?: boolean;
|
|
114
113
|
/** Abort signal (tests / programmatic stop of `playground` proxy). */
|
|
115
114
|
signal?: AbortSignal;
|
|
115
|
+
/**
|
|
116
|
+
* `run --prod` / `session --prod --message`: hosted v2 session start on
|
|
117
|
+
* the agentsdk control plane. `--dry-run` marks the turn non-mutating;
|
|
118
|
+
* `--as-of` freezes the session clock at a timezone-bearing instant.
|
|
119
|
+
*/
|
|
120
|
+
dryRun?: boolean;
|
|
121
|
+
asOf?: string;
|
|
116
122
|
}
|
|
117
123
|
export interface ResolvedAgentTarget {
|
|
118
124
|
agentUrl: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-ax.d.ts","sourceRoot":"","sources":["../../src/internal/cli-ax.ts"],"names":[],"mappings":"AAAA
|
|
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
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
* init / run / trajectory / eval
|
|
4
4
|
*
|
|
5
5
|
* Coding agents get JSON-first output, ephemeral local servers, and
|
|
6
|
-
* filesystem-first evals under evals/ (*.eval.ts).
|
|
7
|
-
* (`defineAB` under `agent/ab`) plug into serve — there is no `ab` CLI.
|
|
6
|
+
* filesystem-first evals under evals/ (*.eval.ts).
|
|
8
7
|
*/
|
|
9
8
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
10
9
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
@@ -24,12 +23,14 @@ import { lookupSessionContinuation, runChat } from "./chat-client.js";
|
|
|
24
23
|
import { ensureCursorLogin } from "./cli-cursor.js";
|
|
25
24
|
import { resolveDeployAuth } from "./cli-deploy.js";
|
|
26
25
|
import { resolveApiKey } from "./cursor/credentials.js";
|
|
26
|
+
import { DeployApiError } from "./deploy-client.js";
|
|
27
27
|
import { CLI_COMMAND_NAME, PACKAGE_NAME } from "./distribution.js";
|
|
28
28
|
import { discoverEvals, filterDiscoveredEvals, runDiscoveredEvals, } from "./eval-runner.js";
|
|
29
29
|
import { cancelRemoteEvalRun, getRemoteEvalRun, listRemoteEvalRuns, listRemoteEvals, pollRemoteEvalRun, RemoteEvalError, snapshotToEvalRunResults, startRemoteEvalRun, } from "./evals-client.js";
|
|
30
30
|
import { runTemplateInit } from "./init-interview.js";
|
|
31
31
|
import { checkInitTarget, formatInitNextSteps, formatInitScaffoldSummary, initNextCommands, initProject, installScaffoldDependencies, linkCliOntoPath, printInitGuide, resolveTemplate, } from "./init-project.js";
|
|
32
32
|
import { offerInstallCursorSkills } from "./install-cursor-skills.js";
|
|
33
|
+
import { rejectV2ForLegacyCommand } from "./legacy-command-guard.js";
|
|
33
34
|
import { runLogsTail, sanitizeCustomerError } from "./logs-client.js";
|
|
34
35
|
import { mapPool } from "./map-pool.js";
|
|
35
36
|
import { openBrowser } from "./open-browser.js";
|
|
@@ -377,6 +378,15 @@ export function cmdChat(options) {
|
|
|
377
378
|
export function cmdRun(options) {
|
|
378
379
|
return __awaiter(this, void 0, void 0, function* () {
|
|
379
380
|
var _a, _b, _c;
|
|
381
|
+
// Only a v2-shaped request tries the control plane; every v1 `run --prod`
|
|
382
|
+
// form (multi-turn, continuation token, local session id, --url) keeps its
|
|
383
|
+
// engine-alias path untouched.
|
|
384
|
+
if (options.prod === true && hostedSessionRejection(options) === undefined) {
|
|
385
|
+
const started = yield cmdHostedSession(options);
|
|
386
|
+
if (started !== "fallback") {
|
|
387
|
+
return started;
|
|
388
|
+
}
|
|
389
|
+
}
|
|
380
390
|
const messages = (_a = options.messages) !== null && _a !== void 0 ? _a : [];
|
|
381
391
|
if (messages.length === 0) {
|
|
382
392
|
die("Provide --message (repeatable) or --messages-file");
|
|
@@ -472,6 +482,73 @@ export function cmdRun(options) {
|
|
|
472
482
|
}
|
|
473
483
|
});
|
|
474
484
|
}
|
|
485
|
+
const HOSTED_SESSION_ID_RE = /^ses_[a-f0-9]{24}$/;
|
|
486
|
+
/**
|
|
487
|
+
* Hosted v2 session start: POST the agentsdk control plane, which hands the
|
|
488
|
+
* wake to Temporal (no resident engine, no `/engine/*` alias). `--session
|
|
489
|
+
* ses_…` resumes that exact session; there is no continuation token on
|
|
490
|
+
* this path. A 404 means the slug is not a v2 control-plane deployment, so
|
|
491
|
+
* `run --prod` falls back to the v1 engine alias.
|
|
492
|
+
*/
|
|
493
|
+
/** Why these options cannot be a hosted v2 session start, if they cannot. */
|
|
494
|
+
function hostedSessionRejection(options) {
|
|
495
|
+
var _a;
|
|
496
|
+
var _b;
|
|
497
|
+
if (options.url !== undefined) {
|
|
498
|
+
return "--prod session start talks to the agentsdk control plane; do not pass --url";
|
|
499
|
+
}
|
|
500
|
+
const messages = (_b = options.messages) !== null && _b !== void 0 ? _b : [];
|
|
501
|
+
if (messages.length !== 1 || ((_a = messages[0]) === null || _a === void 0 ? void 0 : _a.trim()) === "") {
|
|
502
|
+
return "Provide exactly one --message (the wake). Multi-turn runs are local-only.";
|
|
503
|
+
}
|
|
504
|
+
if (trimNonEmpty(options.continuationToken) !== undefined) {
|
|
505
|
+
return "--continuation-token is not a hosted v2 identity; pass --session ses_… to resume a session";
|
|
506
|
+
}
|
|
507
|
+
const sessionId = trimNonEmpty(options.sessionId);
|
|
508
|
+
if (sessionId !== undefined && !HOSTED_SESSION_ID_RE.test(sessionId)) {
|
|
509
|
+
return `--session must be a hosted session id (ses_…), got ${sessionId}`;
|
|
510
|
+
}
|
|
511
|
+
return undefined;
|
|
512
|
+
}
|
|
513
|
+
function cmdHostedSession(options) {
|
|
514
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
515
|
+
var _a;
|
|
516
|
+
const rejection = hostedSessionRejection(options);
|
|
517
|
+
if (rejection !== undefined) {
|
|
518
|
+
die(rejection);
|
|
519
|
+
}
|
|
520
|
+
const messages = (_a = options.messages) !== null && _a !== void 0 ? _a : [];
|
|
521
|
+
const sessionId = trimNonEmpty(options.sessionId);
|
|
522
|
+
const auth = yield resolveDeployAuth({
|
|
523
|
+
team: options.team,
|
|
524
|
+
apiKey: options.apiKey,
|
|
525
|
+
fetchImpl: options.fetchImpl,
|
|
526
|
+
});
|
|
527
|
+
if (typeof auth === "number") {
|
|
528
|
+
return auth;
|
|
529
|
+
}
|
|
530
|
+
const slug = resolveProdSlug(options);
|
|
531
|
+
try {
|
|
532
|
+
const accepted = yield auth.client.startSession({
|
|
533
|
+
teamId: auth.teamId,
|
|
534
|
+
slug,
|
|
535
|
+
message: messages[0].trim(),
|
|
536
|
+
sessionId,
|
|
537
|
+
dryRun: options.dryRun,
|
|
538
|
+
asOf: options.asOf,
|
|
539
|
+
});
|
|
540
|
+
console.log(JSON.stringify(accepted, null, 2));
|
|
541
|
+
return 0;
|
|
542
|
+
}
|
|
543
|
+
catch (error) {
|
|
544
|
+
if (error instanceof DeployApiError && error.status === 404) {
|
|
545
|
+
return "fallback";
|
|
546
|
+
}
|
|
547
|
+
process.stderr.write(`${error instanceof Error ? error.message : String(error)}\n`);
|
|
548
|
+
return 1;
|
|
549
|
+
}
|
|
550
|
+
});
|
|
551
|
+
}
|
|
475
552
|
/**
|
|
476
553
|
* `agent-sdk call <tool>` — deterministic tool invocation over
|
|
477
554
|
* `POST /v1/tools/:toolName` (ephemeral local server unless --url).
|
|
@@ -1301,6 +1378,11 @@ export function cmdLogs(options) {
|
|
|
1301
1378
|
if (typeof auth === "number") {
|
|
1302
1379
|
return auth;
|
|
1303
1380
|
}
|
|
1381
|
+
yield rejectV2ForLegacyCommand({
|
|
1382
|
+
client: auth.client,
|
|
1383
|
+
teamId: auth.teamId,
|
|
1384
|
+
slug,
|
|
1385
|
+
});
|
|
1304
1386
|
yield runLogsTail({
|
|
1305
1387
|
prod: true,
|
|
1306
1388
|
dir: options.dir,
|
|
@@ -1323,6 +1405,7 @@ export function cmdLogs(options) {
|
|
|
1323
1405
|
apiKey: options.apiKey,
|
|
1324
1406
|
fetchImpl: options.fetchImpl,
|
|
1325
1407
|
err: () => { },
|
|
1408
|
+
skipLegacyArchitectureCheck: true,
|
|
1326
1409
|
});
|
|
1327
1410
|
return { agentUrl: target.agentUrl, headers: target.headers };
|
|
1328
1411
|
}),
|
|
@@ -1428,8 +1511,22 @@ export function cmdSessions(options) {
|
|
|
1428
1511
|
*/
|
|
1429
1512
|
export function cmdSession(sessionId, options) {
|
|
1430
1513
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1514
|
+
var _a;
|
|
1515
|
+
var _b, _c;
|
|
1516
|
+
if (options.prod === true && ((_b = (_a = options.messages) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) > 0) {
|
|
1517
|
+
// `session --prod [ses_…] --message` is the same hosted start as
|
|
1518
|
+
// `run --prod`, with the positional id as the session to resume. Unlike
|
|
1519
|
+
// `run`, a 404 is an error here: this form is explicitly v2.
|
|
1520
|
+
const started = yield cmdHostedSession(Object.assign(Object.assign({}, options), { sessionId: (_c = trimNonEmpty(sessionId)) !== null && _c !== void 0 ? _c : options.sessionId }));
|
|
1521
|
+
if (started === "fallback") {
|
|
1522
|
+
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`);
|
|
1523
|
+
return 1;
|
|
1524
|
+
}
|
|
1525
|
+
return started;
|
|
1526
|
+
}
|
|
1431
1527
|
if (sessionId === undefined || sessionId.trim() === "") {
|
|
1432
|
-
process.stderr.write(`Usage: ${CLI_COMMAND_NAME} session <sessionId> [--url | --prod] [--json | --text | --events] [--out <file.ndjson>]\n`
|
|
1528
|
+
process.stderr.write(`Usage: ${CLI_COMMAND_NAME} session <sessionId> [--url | --prod] [--json | --text | --events] [--out <file.ndjson>]\n` +
|
|
1529
|
+
` or: ${CLI_COMMAND_NAME} session --prod [<sessionId>] --slug <slug> --message "…" [--dry-run] [--as-of <instant>]\n`);
|
|
1433
1530
|
return 2;
|
|
1434
1531
|
}
|
|
1435
1532
|
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
|
}
|