@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
|
@@ -152,12 +152,11 @@ These read-only routes describe the running agent.
|
|
|
152
152
|
|
|
153
153
|
| Route | What it does |
|
|
154
154
|
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
155
|
-
| `GET /v1/info` | The discovered surface: model, tools, skills, MCP connections, subagents, channels and routes (with schemas), schedules, hooks,
|
|
155
|
+
| `GET /v1/info` | The discovered surface: model, tools, skills, MCP connections, subagents, channels and routes (with schemas), schedules, hooks, diagnostics |
|
|
156
156
|
| `GET /v1/tools` | The live tool catalog: authored server tools plus advertised MCP passthroughs under model-facing names, as light `{ name, title?, source? }` entries. `session` / `continuationToken` query parameters bind the listing to a session identity (advertised inventories can be tenant-scoped); a connection whose listing fails is skipped and reported in `connectionErrors` |
|
|
157
157
|
| `GET /v1/tools/:name` | One catalog tool's full description: description, execution, `needsApproval`, `effect`, input and output schemas, source connection. Same session binding as the listing; unknown names get `404` with the available names |
|
|
158
158
|
| `GET /v1/health` | Per-agent liveness, no auth |
|
|
159
159
|
| `GET /v1/logs?after=N` | Recent server log lines, with a polling cursor |
|
|
160
|
-
| `GET /v1/abs` | [Live A/B metrics](../ab.md): per-session assignments and aggregate arm totals |
|
|
161
160
|
|
|
162
161
|
## Artifacts
|
|
163
162
|
|
|
@@ -216,7 +215,7 @@ the final `completed` or `failed` status. Batch errors appear on the
|
|
|
216
215
|
snapshot returned by the poll. Entries within `filterIds` and `tags`
|
|
217
216
|
use OR semantics. When both fields are present, a case must match one
|
|
218
217
|
entry from each field. Listed runs persist across restarts when storage is configured; see
|
|
219
|
-
[Storage](../storage.md#eval-
|
|
218
|
+
[Storage](../storage.md#eval-table). Otherwise they are
|
|
220
219
|
process-memory only.
|
|
221
220
|
|
|
222
221
|
## Dev-mode routes
|
|
@@ -37,8 +37,6 @@ Use the playground to chat, try channel routes, and inspect sessions.
|
|
|
37
37
|
an [extension](./extensions.md) cannot contribute them.
|
|
38
38
|
- **Raw events pane**: flip it on to inspect the event stream.
|
|
39
39
|
- **Logs tab**: recent server log lines, polled from `GET /v1/logs`.
|
|
40
|
-
- **A/Bs tab**: per-session and aggregate
|
|
41
|
-
[live A/B metrics](../ab.md) from `GET /v1/abs`.
|
|
42
40
|
|
|
43
41
|
In multi-agent mode each agent has its own playground at
|
|
44
42
|
`/<slug>/playground`, and `/` is an index of them all.
|
|
@@ -61,5 +59,3 @@ Continue with these pages:
|
|
|
61
59
|
- [Sessions and streaming](./sessions.md): the streams it renders
|
|
62
60
|
- [Human-in-the-loop](../guides/human-in-the-loop.md): the approval
|
|
63
61
|
buttons in context
|
|
64
|
-
- [Live A/B metrics](../ab.md): the assignments and results in the A/Bs
|
|
65
|
-
tab
|
|
@@ -11,8 +11,7 @@ how the Agent SDK loads it.
|
|
|
11
11
|
|
|
12
12
|
## Folder structure
|
|
13
13
|
|
|
14
|
-
For the capabilities below, identity
|
|
15
|
-
experiments can override their file-derived name.
|
|
14
|
+
For the capabilities below, identity comes from the path.
|
|
16
15
|
|
|
17
16
|
| Path | Resolves to |
|
|
18
17
|
| --- | --- |
|
|
@@ -24,8 +23,6 @@ experiments can override their file-derived name.
|
|
|
24
23
|
| `agent/extensions/ci.ts` | extension mount `ci`; its contributions become `ci__<name>` |
|
|
25
24
|
| `agent/extensions/notion.ts` | Cursor plugin mount `notion` (`cursorPlugin`); its skills, agents, and MCP servers become `notion__<name>` |
|
|
26
25
|
| `agent/channels/drive.ts` | channel `drive`, routes under `/v1/channels/drive` |
|
|
27
|
-
| `agent/ab.ts` | A/B experiment `ab` unless `name` overrides it |
|
|
28
|
-
| `agent/ab/concise.ts` | A/B experiment `concise` unless `name` overrides it |
|
|
29
26
|
|
|
30
27
|
The root agent takes its name from `package.json` `name`, falling back
|
|
31
28
|
to the directory name. When serving multiple agents, the slug is the
|
|
@@ -77,8 +74,6 @@ Each path maps to a capability and a reference page.
|
|
|
77
74
|
| `agent/channels/*.ts` | HTTP surfaces beyond the built-in session API; `slack.ts` and `github.ts` use the platform packs | [Channels](./channels.md) |
|
|
78
75
|
| `agent/hooks/*.ts` | Observe-only event subscribers, never fatal | [Hooks](./hooks.md) |
|
|
79
76
|
| `agent/otel.ts` | `defineOtel` OTLP export (traces, metrics, optional logs) | [OpenTelemetry](../guides/opentelemetry.md) |
|
|
80
|
-
| `agent/ab.ts`, `agent/ab/*.ts` | `defineAB` experiments with sticky variants and live metrics | [Live A/B metrics](../ab.md) |
|
|
81
|
-
| `agent/ab.config.ts` | `defineABConfig` shared A/B settings | [Live A/B metrics](../ab.md) |
|
|
82
77
|
| `agent/storage.ts` | `defineStorage` backend for the durable `host.kv` / `host.files` APIs | [Storage](../storage.md) |
|
|
83
78
|
| `agent/artifacts.ts` | `defineArtifacts` kinds, the `tag_artifact` opt-in, and retention | [Artifacts](./artifacts.md) |
|
|
84
79
|
| `agent/result.ts` | `defineResult` host `commit` on the final assistant text | [Turn result](./result.md) |
|
|
@@ -115,6 +110,4 @@ Continue with these pages:
|
|
|
115
110
|
|
|
116
111
|
- [Agent config](./agent-config.md): the runtime config at the root
|
|
117
112
|
- [Tools](./tools.md): add typed actions under `agent/tools/`
|
|
118
|
-
- [Live A/B metrics](../ab.md): compare variants from `agent/ab.ts` or
|
|
119
|
-
`agent/ab/`
|
|
120
113
|
- [Concepts](../concepts.md): why the filesystem is the interface
|
|
@@ -80,7 +80,7 @@ within one session. The `at` field is an ISO-8601 timestamp.
|
|
|
80
80
|
|
|
81
81
|
| Phase | Events | What they tell you |
|
|
82
82
|
| --- | --- | --- |
|
|
83
|
-
| Session | `session.started`,
|
|
83
|
+
| Session | `session.started`, `session.waiting`, `session.completed`, `session.failed` | Session creation, readiness, and task completion |
|
|
84
84
|
| Agent | `agent.bound` | Cloud conversation URL |
|
|
85
85
|
| Input | `message.received` | A user message was accepted |
|
|
86
86
|
| Turn | `turn.queued`, `turn.started`, `turn.completed`, `turn.failed` | Queue position under a [`maxRunningTurns` cap](./agent-config.md#concurrency), then turn status, final result, and token usage |
|
|
@@ -164,5 +164,4 @@ view.
|
|
|
164
164
|
|
|
165
165
|
- [HTTP API](./http-api.md)
|
|
166
166
|
- [Hooks](./hooks.md)
|
|
167
|
-
- [Live A/B metrics](../ab.md)
|
|
168
167
|
- [How the Agent SDK works](../concepts.md)
|
|
@@ -113,7 +113,8 @@ Cursor checks the project in this order:
|
|
|
113
113
|
|
|
114
114
|
Validation, discovery, direct server-tool calls, and server startup work
|
|
115
115
|
without a Cursor credential. Model turns and evals need
|
|
116
|
-
`CURSOR_API_KEY`
|
|
116
|
+
`CURSOR_API_KEY`, then `CURSOR_API_KEY_FILE` (hosted default `/run/cursor/secrets/CURSOR_API_KEY`), then `CURSOR_SERVICE_ACCOUNT_KEY`, then a saved
|
|
117
|
+
`agent-sdk login`.
|
|
117
118
|
|
|
118
119
|
## What happens after the first agent works?
|
|
119
120
|
|
package/docs/skills/index.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Coding-agent skills"
|
|
3
|
-
description: "Task guides that ship with the Agent SDK for scaffolding, evals, channels, and hillclimbing."
|
|
3
|
+
description: "Task guides that ship with the Agent SDK for scaffolding, deployment, evals, channels, and hillclimbing."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Coding-agent skills
|
|
@@ -17,10 +17,10 @@ to use each one.
|
|
|
17
17
|
| [framework-map](./framework-map.md) | Learn the project layout and runtimes |
|
|
18
18
|
| [create-agent](./create-agent.md) | Scaffold and verify a new agent |
|
|
19
19
|
| [evals](./evals.md) | Write fixtures and regression checks |
|
|
20
|
-
| [ab](./ab.md) | Compare variants on live traffic |
|
|
21
20
|
| [otel](./otel.md) | Export OpenTelemetry traces |
|
|
22
21
|
| [hillclimb](./hillclimb.md) | Improve an agent against fixed inputs |
|
|
23
22
|
| [github](./github.md) | Add GitHub webhooks and replay events |
|
|
24
23
|
| [setup-slack](./setup-slack.md) | Connect an agent to Slack |
|
|
25
24
|
| [mcp-auth](./mcp-auth.md) | Authorize host MCP OAuth |
|
|
25
|
+
| [deploy](./deploy.md) | Deploy with an attached service account |
|
|
26
26
|
| [debug](./debug.md) | Diagnose a local run |
|
package/docs/storage.md
CHANGED
|
@@ -6,8 +6,8 @@ description: "Point the Agent SDK's durable storage at a backend you own with de
|
|
|
6
6
|
# Storage
|
|
7
7
|
|
|
8
8
|
The Agent SDK owns durable storage for sessions, continuation tokens,
|
|
9
|
-
reminders, playground eval history
|
|
10
|
-
|
|
9
|
+
reminders, and playground eval history. It chooses the keys, when to
|
|
10
|
+
read and write, and how to restore after restart.
|
|
11
11
|
|
|
12
12
|
The Agent SDK owns key encoding. Backends must accept the keys they are
|
|
13
13
|
given. Do not fail `put` to enforce a shorter cap.
|
|
@@ -41,9 +41,9 @@ export default defineStorage({
|
|
|
41
41
|
## Which fields to provide
|
|
42
42
|
|
|
43
43
|
Implement the small KV core (`put`/`get`/`delete`/`list` plus the `cas`
|
|
44
|
-
group) and you get **full functionality**: eval-run
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
group) and you get **full functionality**: eval-run history is derived
|
|
45
|
+
over the core automatically. The dedicated `evals` group is a
|
|
46
|
+
backend-native optimization, not a required-or-lose-history hook.
|
|
47
47
|
|
|
48
48
|
| Field | Required | Role |
|
|
49
49
|
| --- | --- | --- |
|
|
@@ -54,36 +54,28 @@ are backend-native optimizations, not required-or-lose-history hooks.
|
|
|
54
54
|
| `delete` | For cleanup | Remove a key |
|
|
55
55
|
| `name` | No | Label surfaced on `GET /v1/info` diagnostics |
|
|
56
56
|
| `policy` | No | Timing knobs; see [Policy](#policy) |
|
|
57
|
-
| `evals` | No | Backend-native eval-runs table; derived over the core when omitted. See [Eval
|
|
58
|
-
| `abs` | No | Backend-native A/B metrics table; derived over the core when omitted. See [Eval and A/B tables](#eval-and-a-b-tables) |
|
|
57
|
+
| `evals` | No | Backend-native eval-runs table; derived over the core when omitted. See [Eval table](#eval-table) |
|
|
59
58
|
|
|
60
59
|
A throwing `put` is logged and dropped. It never fails a turn. When
|
|
61
60
|
resolving a missing continuation token, a throwing `get` fails the
|
|
62
61
|
follow-up so a store outage does not open a new session. Return
|
|
63
62
|
`undefined` only for a real miss.
|
|
64
63
|
|
|
65
|
-
## Eval
|
|
64
|
+
## Eval table
|
|
66
65
|
|
|
67
|
-
|
|
68
|
-
values.
|
|
69
|
-
authored, `defineStorage` derives it over the KV core, so a backend
|
|
70
|
-
implements only the core loses nothing. Author
|
|
71
|
-
backend has a better native shape (a real database table, an
|
|
72
|
-
pipeline). The built-in `fileKv` and `cursorHostedStorage`
|
|
66
|
+
The dedicated `evals` table group carries structured rows instead of
|
|
67
|
+
opaque KV values. It is an **optional optimization**: when the group is
|
|
68
|
+
not authored, `defineStorage` derives it over the KV core, so a backend
|
|
69
|
+
that implements only the core loses nothing. Author the group only when
|
|
70
|
+
the backend has a better native shape (a real database table, an
|
|
71
|
+
analytics pipeline). The built-in `fileKv` and `cursorHostedStorage`
|
|
72
|
+
both do.
|
|
73
73
|
|
|
74
74
|
`evals` keeps playground eval batches across restarts (`put`, `delete`,
|
|
75
75
|
`list` over run snapshots keyed by `runId`). A core missing `delete` or
|
|
76
76
|
`list` leaves eval history in memory until restart.
|
|
77
77
|
See [Evals](./evals.md#configure-eval-runs).
|
|
78
78
|
|
|
79
|
-
`abs` exports live A/B metrics: `putSample` appends one cumulative
|
|
80
|
-
metric sample per enrolled experiment on each completed or failed turn;
|
|
81
|
-
optional `putSnapshot` / `getSnapshot` store and serve back the latest
|
|
82
|
-
aggregate so a replacement host can still serve the A/Bs surface.
|
|
83
|
-
`putSample` and `putSnapshot` need only core `put`; `getSnapshot` needs
|
|
84
|
-
core `get`. Session event logs remain the assignment source of truth
|
|
85
|
-
either way. See [Live A/B metrics](./ab.md).
|
|
86
|
-
|
|
87
79
|
## Policy
|
|
88
80
|
|
|
89
81
|
Two knobs change behavior:
|
|
@@ -118,8 +110,7 @@ With `get` and `list`, serve can rebuild local state from your store:
|
|
|
118
110
|
- At startup, the Agent SDK loads recent sessions up to the restore caps.
|
|
119
111
|
- On demand, a missing continuation token resolves through the store
|
|
120
112
|
and resumes that session.
|
|
121
|
-
- Playground eval history
|
|
122
|
-
sink.
|
|
113
|
+
- Playground eval history can load from the same sink.
|
|
123
114
|
|
|
124
115
|
A turn in flight at crash time is not replayed. The next follow-up
|
|
125
116
|
resumes from the last flushed state.
|
package/docs/troubleshooting.md
CHANGED
|
@@ -30,7 +30,7 @@ not on `PATH`, use `npx @cursor/july`.
|
|
|
30
30
|
| What you see | What to do |
|
|
31
31
|
| --- | --- |
|
|
32
32
|
| Built-in file reads and greps fail; the turn retries for a long time | Run under Node 22.13+ (or `tsx`), never Bun. Look for `NGHTTP2_FRAME_SIZE_ERROR` in logs. |
|
|
33
|
-
| The turn fails immediately with an API-key error | Sign in with `agent-sdk login`, or set `CURSOR_API_KEY`. Discovery, `info`, `call`, and serve bring-up work without a key; model turns need one. |
|
|
33
|
+
| The turn fails immediately with an API-key error | Sign in with `agent-sdk login`, or set `CURSOR_API_KEY` or `CURSOR_SERVICE_ACCOUNT_KEY`. Discovery, `info`, `call`, and serve bring-up work without a key; model turns need one. |
|
|
34
34
|
| Replies quote rules or `AGENTS.md` from outside your agent project | The session workspace inherited parent-folder config. Nested git checkouts default `local.cwd` to a per-project cache directory under `~/.cache`. Point `defineAgent({ local: { cwd } })` at a checkout only when the agent should inherit that tree, or set `--state-root` to a clean directory (for example under `/tmp`). |
|
|
35
35
|
| Yellow box shows Datadog/Linear tools, but the model lists `GetDynamicTools` / IDE `cursor` tools and never calls them | Attached MCP sits behind harness meta-tools, or the harness cwd is still inside another checkout. Set `advertiseTools: true` for named tools on local turns. Check `GET /v1/info` `local.cwd` and `connections[].advertiseTools`. |
|
|
36
36
|
| Server tools, skills, or workspace seed files never appear | Server tools and sandbox seeds apply on the local runtime (cloud server tools need `--public-url` / `--cloud-tools-url`). Skills reach cloud through the Agent Store when hosting or a personal `CURSOR_API_KEY` is available; otherwise only skills already in the cloud repo. `validate` warns when this combination is present. |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cursor/july",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.109",
|
|
4
4
|
"description": "(early alpha) Filesystem-first framework for defining Cursor agents as markdown and TypeScript and serving them over channels with the Cursor SDK.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"repository": {
|
|
@@ -146,6 +146,13 @@
|
|
|
146
146
|
"import": "./dist/extensions/cursor-grokbot-agents/extension.js",
|
|
147
147
|
"default": "./dist/extensions/cursor-grokbot-agents/extension.js"
|
|
148
148
|
},
|
|
149
|
+
"./extensions/improve": {
|
|
150
|
+
"anysphere-source": "./src/extensions/improve/extension.ts",
|
|
151
|
+
"bun": "./dist/extensions/improve/extension.js",
|
|
152
|
+
"types": "./dist/extensions/improve/extension.d.ts",
|
|
153
|
+
"import": "./dist/extensions/improve/extension.js",
|
|
154
|
+
"default": "./dist/extensions/improve/extension.js"
|
|
155
|
+
},
|
|
149
156
|
"./schedules": {
|
|
150
157
|
"anysphere-source": "./src/schedules.ts",
|
|
151
158
|
"types": "./dist/schedules.d.ts",
|
|
@@ -207,12 +214,6 @@
|
|
|
207
214
|
"import": "./dist/evals/loaders.js",
|
|
208
215
|
"default": "./dist/evals/loaders.js"
|
|
209
216
|
},
|
|
210
|
-
"./ab": {
|
|
211
|
-
"anysphere-source": "./src/ab.ts",
|
|
212
|
-
"types": "./dist/ab.d.ts",
|
|
213
|
-
"import": "./dist/ab.js",
|
|
214
|
-
"default": "./dist/ab.js"
|
|
215
|
-
},
|
|
216
217
|
"./artifacts": {
|
|
217
218
|
"anysphere-source": "./src/artifacts.ts",
|
|
218
219
|
"types": "./dist/artifacts.d.ts",
|
|
@@ -133,7 +133,7 @@ npx tsc --noEmit -p ./<slug>
|
|
|
133
133
|
tsx does not typecheck. Tool `execute` must return JSON-shaped
|
|
134
134
|
values: object literals or `type` aliases, not `interface` types.
|
|
135
135
|
|
|
136
|
-
Model turns need `CURSOR_API_KEY
|
|
136
|
+
Model turns need a Cursor credential (`CURSOR_API_KEY`, then `CURSOR_API_KEY_FILE`, then `CURSOR_SERVICE_ACCOUNT_KEY`, then `agent-sdk login`). Without one, finish the
|
|
137
137
|
key-free checks, confirm `run` fails with only the API-key error,
|
|
138
138
|
and hand these over:
|
|
139
139
|
|
package/skills/debug/SKILL.md
CHANGED
|
@@ -34,7 +34,7 @@ Local `agent-sdk serve`. Hosted start or health failures:
|
|
|
34
34
|
| `403` on stream | Wrong principal. Same auth as create; beyond loopback send `--bearer-token`. |
|
|
35
35
|
| Works on loopback, blocked via tunnel | `localDevStrict()` rejects forwarded headers. Use `--bearer-token`. Never `--allow-anonymous` with account MCP. |
|
|
36
36
|
| Slack `channel idle … missing credentials` | Expected. `slack doctor --prefix <PREFIX>`. |
|
|
37
|
-
| Immediate API-key error | Model turns need `CURSOR_API_KEY
|
|
37
|
+
| Immediate API-key error | Model turns need a Cursor credential (`CURSOR_API_KEY`, then `CURSOR_API_KEY_FILE`, then `CURSOR_SERVICE_ACCOUNT_KEY`, then `agent-sdk login`). |
|
|
38
38
|
| Approvals or sandbox seeds missing | `runtime: "cloud"`. Those are local only. `validate` warns. |
|
|
39
39
|
| `validate` clean, CI typecheck fails | tsx skipped types. JSON-shaped returns; `type` not `interface`. |
|
|
40
40
|
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: agentsdk-deploy
|
|
3
|
+
description: >-
|
|
4
|
+
Deploy or redeploy an Agent SDK project to Cursor-managed hosting
|
|
5
|
+
with an attached service account. Use when asked to deploy,
|
|
6
|
+
redeploy, publish, or update a hosted Agent SDK agent.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Deploy an Agent SDK agent
|
|
10
|
+
|
|
11
|
+
Use this skill only after a person asks for a deployment. It deploys a
|
|
12
|
+
pushed Git ref to Cursor-managed hosting. Local files never upload.
|
|
13
|
+
|
|
14
|
+
Use the exact published `@cursor/july` release embedded in the installed
|
|
15
|
+
skill. Do not use a floating npm tag or a workspace build of the CLI.
|
|
16
|
+
|
|
17
|
+
## Gather the target
|
|
18
|
+
|
|
19
|
+
Resolve these values from the request and checkout:
|
|
20
|
+
|
|
21
|
+
- Agent directory. Default to the current directory only when it contains
|
|
22
|
+
one Agent SDK project.
|
|
23
|
+
- Deployment slug. Default to the normalized directory name.
|
|
24
|
+
- Git ref. Default to the exact pushed `HEAD` commit.
|
|
25
|
+
- Team. Use the service account's team unless the request names another.
|
|
26
|
+
- Cursor-event repositories and CLI-only egress domains.
|
|
27
|
+
|
|
28
|
+
Ask one focused question when the target or requested ref is ambiguous.
|
|
29
|
+
Do not ask for values the checkout or existing deployment supplies.
|
|
30
|
+
|
|
31
|
+
## Use the attached service account
|
|
32
|
+
|
|
33
|
+
Continue only when `CURSOR_SERVICE_ACCOUNT_KEY` is present. Never print
|
|
34
|
+
the value. Do not run `agent-sdk login`.
|
|
35
|
+
|
|
36
|
+
On Linux and macOS, run every Agent SDK command through this wrapper:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
CURSOR_JULY_VERSION="__CURSOR_JULY_VERSION__"
|
|
40
|
+
case "$CURSOR_JULY_VERSION" in
|
|
41
|
+
__CURSOR_JULY_*__)
|
|
42
|
+
echo "The Agent SDK deploy skill is not bound to a package version." >&2
|
|
43
|
+
exit 1
|
|
44
|
+
;;
|
|
45
|
+
esac
|
|
46
|
+
|
|
47
|
+
run_agent_sdk() {
|
|
48
|
+
env -u NODE_OPTIONS -u CURSOR_API_KEY \
|
|
49
|
+
CURSOR_API_KEY_FILE=/dev/null \
|
|
50
|
+
npx --yes "@cursor/july@$CURSOR_JULY_VERSION" "$@"
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
The installed copy pins the release it came from. The wrapper isolates that
|
|
55
|
+
published CLI and the attached service account. The presence check prevents a
|
|
56
|
+
stored personal login from being used when the attachment is missing.
|
|
57
|
+
|
|
58
|
+
Verify the principal before any write:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
test -n "${CURSOR_SERVICE_ACCOUNT_KEY:-}" || {
|
|
62
|
+
echo "No attached Cursor service account." >&2
|
|
63
|
+
exit 1
|
|
64
|
+
}
|
|
65
|
+
run_agent_sdk whoami --json
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Continue only when `credentialSource` is `service-account`. Record the
|
|
69
|
+
team and complete service-account ID for the final report. Stop on an
|
|
70
|
+
authentication, team-access, repository-scope, or hosting-entitlement
|
|
71
|
+
error.
|
|
72
|
+
|
|
73
|
+
## Pin pushed source
|
|
74
|
+
|
|
75
|
+
Find the Git root and commit:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
GIT_ROOT="$(git -C "$AGENT_DIR" rev-parse --show-toplevel)"
|
|
79
|
+
SOURCE_REF="$(git -C "$GIT_ROOT" rev-parse HEAD)"
|
|
80
|
+
git -C "$GIT_ROOT" status --short
|
|
81
|
+
git -C "$GIT_ROOT" branch -r --contains "$SOURCE_REF"
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Use a ref from the request instead of `SOURCE_REF` when the person names
|
|
85
|
+
one. Confirm the selected commit exists on the remote. If intended
|
|
86
|
+
changes are uncommitted or unpushed, stop and explain they will not ship.
|
|
87
|
+
Do not commit or push unless the request includes that work.
|
|
88
|
+
|
|
89
|
+
The CLI infers the normalized HTTPS `origin`, agent path, and slug from
|
|
90
|
+
`--dir`. Pass `--repo`, `--path`, or `--slug` when the request overrides
|
|
91
|
+
the inferred value. Never print a remote URL that contains credentials.
|
|
92
|
+
|
|
93
|
+
## Preserve deployment inputs
|
|
94
|
+
|
|
95
|
+
A redeploy replaces its source, Cursor-event repositories, and
|
|
96
|
+
CLI-supplied egress domains. Preserve the existing
|
|
97
|
+
`cursorEventRepos` and `egressAllowedDomains` unless the request or
|
|
98
|
+
project changes them. Reapply each value with:
|
|
99
|
+
|
|
100
|
+
```text
|
|
101
|
+
--cursor-events-repo <owner/repo>
|
|
102
|
+
--allow-domain <hostname>
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Read existing settings through a filter that selects only those two
|
|
106
|
+
fields:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
run_agent_sdk deployment "$SLUG" --json |
|
|
110
|
+
node -e '
|
|
111
|
+
let raw = "";
|
|
112
|
+
process.stdin.setEncoding("utf8");
|
|
113
|
+
process.stdin.on("data", (chunk) => { raw += chunk; });
|
|
114
|
+
process.stdin.on("end", () => {
|
|
115
|
+
const value = JSON.parse(raw);
|
|
116
|
+
console.log(JSON.stringify({
|
|
117
|
+
cursorEventRepos: value.cursorEventRepos ?? [],
|
|
118
|
+
egressAllowedDomains: value.egressAllowedDomains ?? [],
|
|
119
|
+
}, null, 2));
|
|
120
|
+
});
|
|
121
|
+
'
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Never print or save the full response because it can contain short-lived
|
|
125
|
+
engine-access headers.
|
|
126
|
+
|
|
127
|
+
For a new SCM-channel deployment, ask which repositories should wake the
|
|
128
|
+
agent when the project does not declare the answer. The source repository
|
|
129
|
+
is not always the event repository.
|
|
130
|
+
|
|
131
|
+
## Validate, deploy, and verify
|
|
132
|
+
|
|
133
|
+
Validate with the same published package and principal:
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
run_agent_sdk validate --dir "$AGENT_DIR"
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Stop on validation errors. Review hosting warnings about secret names,
|
|
140
|
+
egress domains, and channel configuration before continuing.
|
|
141
|
+
|
|
142
|
+
Deploy the pinned source. Add the preserved or requested repeatable
|
|
143
|
+
flags:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
run_agent_sdk deploy \
|
|
147
|
+
--dir "$AGENT_DIR" \
|
|
148
|
+
--ref "$SOURCE_REF"
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
The command waits for a terminal deployment state. Do not treat
|
|
152
|
+
`pending`, `accepted`, or `deploying` as success. If the command is
|
|
153
|
+
interrupted, resume inspection with:
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
run_agent_sdk deployment "$SLUG"
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
A first deployment prints a one-time alias token. Never paste it into
|
|
160
|
+
chat or expose it in an agent-captured terminal. Before a first deploy,
|
|
161
|
+
ask for a secure destination or ask the person to run the final command
|
|
162
|
+
in a private terminal. When writing the token, use mode `0600` and print
|
|
163
|
+
only the path. Redeploys do not print the token. JSON deployment output
|
|
164
|
+
can also contain credentials, so filter it before display.
|
|
165
|
+
|
|
166
|
+
Finish only when the deployment reports `running`. Report the slug,
|
|
167
|
+
team, generation, pinned ref, and complete service-account ID. On
|
|
168
|
+
failure, report the deployment status and sanitized error without
|
|
169
|
+
retrying a different ref or principal.
|
package/skills/evals/SKILL.md
CHANGED
|
@@ -3,17 +3,17 @@ name: agentsdk-evals
|
|
|
3
3
|
description: >-
|
|
4
4
|
Author and run defineEval cases. Use when writing, fixing, seeding,
|
|
5
5
|
or hillclimbing evals. Ask whether to generate samples or take
|
|
6
|
-
uploaded data. Materialize API-backed fixtures first.
|
|
7
|
-
defineAB (skills/ab), not defineEval.
|
|
6
|
+
uploaded data. Materialize API-backed fixtures first.
|
|
8
7
|
---
|
|
9
8
|
|
|
10
9
|
# Agent SDK evals
|
|
11
10
|
|
|
12
11
|
Fixed input, model turn, gates on the trajectory. Files live at
|
|
13
12
|
project-root `evals/**/*.eval.ts`. `agent/evals/` is ignored.
|
|
13
|
+
Guide: `docs/evals.md`.
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
Observing production: hooks. Tool logic without a model:
|
|
16
|
+
`agent-sdk call <tool> --input '{...}'`.
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
19
|
agent-sdk eval --dir . --list
|
|
@@ -27,9 +27,13 @@ agent-sdk eval --dir . --tag smoke
|
|
|
27
27
|
| `evals/weather.eval.ts` + `test` | `weather` |
|
|
28
28
|
| `evals/weather/nyc.eval.ts` + `test` | `weather/nyc` |
|
|
29
29
|
| `evals/weather.eval.ts` + `{ id: "nyc" }` | `weather/nyc` |
|
|
30
|
+
| `evals/sql.eval.ts` exporting an array of `defineEval` calls | `sql/0000`, `sql/0001`, ... |
|
|
30
31
|
|
|
31
32
|
`eval` boots an ephemeral server and a temp state root. `--url`
|
|
32
|
-
points at a running agent. Model turns need
|
|
33
|
+
points at a running agent. Model turns need a Cursor credential
|
|
34
|
+
(`CURSOR_API_KEY`, then `CURSOR_API_KEY_FILE`, then
|
|
35
|
+
`CURSOR_SERVICE_ACCOUNT_KEY`, then `agent-sdk login`); `--list` does
|
|
36
|
+
not. Node 22.13+, never Bun.
|
|
33
37
|
|
|
34
38
|
## Seeding
|
|
35
39
|
|
|
@@ -79,9 +83,30 @@ export default defineEvalConfig({
|
|
|
79
83
|
});
|
|
80
84
|
```
|
|
81
85
|
|
|
82
|
-
Either `test(t)` or `cases`, not both. `t.send` waits for
|
|
83
|
-
|
|
84
|
-
|
|
86
|
+
Either `test(t)` or `cases`, not both. `t.send` waits for the turn to
|
|
87
|
+
settle (complete, park, or fail) and returns it; `turn.calledTool(...)`
|
|
88
|
+
reads only that turn, `t.*` reads the whole run. First-send options:
|
|
89
|
+
`workspaceFiles`, `workspaceDir`, `cloud`.
|
|
90
|
+
|
|
91
|
+
Gates: `t.succeeded()` / `t.parked()`,
|
|
92
|
+
`calledTool(name, { input, output, status, count })` / `notCalledTool`,
|
|
93
|
+
`toolOrder`, `maxToolCalls`, `taggedArtifact`, `event` / `notEvent`,
|
|
94
|
+
`t.check(value, includes | equals | matches | similarity | satisfies)`.
|
|
95
|
+
Records: `t.metric`, `t.log`, `t.score` (soft 0-1).
|
|
96
|
+
|
|
97
|
+
Severity is on the handle: default gate; `.soft()` tracked;
|
|
98
|
+
`.atLeast(0.8)` soft with a bar (verdict `scored`, exit 1 only under
|
|
99
|
+
`--strict`); `.gate(0.8)` hard. `t.judge.factuality`, `summarizes`,
|
|
100
|
+
`closedQA`, and `sql` are soft by default and need a judge model
|
|
101
|
+
(`judge` in `evals.config.ts`, on the eval or case, or per-call
|
|
102
|
+
`{ model }`).
|
|
103
|
+
|
|
104
|
+
## Side effects
|
|
105
|
+
|
|
106
|
+
Eval sessions run real tools. Guard actuation with
|
|
107
|
+
`ctx.session.purpose === "eval"` in the tool, hook, or `defineResult`
|
|
108
|
+
and return a shaped result so `calledTool` can still assert the
|
|
109
|
+
decision.
|
|
85
110
|
|
|
86
111
|
## What to gate
|
|
87
112
|
|
|
@@ -103,6 +128,18 @@ drifting inputs (pin them).
|
|
|
103
128
|
| GitHub | `github replay … --dry-run --out fixtures/github` |
|
|
104
129
|
| Host-prep PR review | A team-owned PR; gate findings shape, not counts |
|
|
105
130
|
| Workspace | `workspaceFiles` in `t.send` |
|
|
131
|
+
| Dataset | `loadJson` / `loadJsonl` / `loadYaml` from `@cursor/july/evals/loaders`, paths from the project root |
|
|
132
|
+
|
|
133
|
+
## Debug and CI
|
|
134
|
+
|
|
135
|
+
A failed local run leaves `evals/<case-id>.json` (assertions, inputs,
|
|
136
|
+
tool I/O, final text, logs) under `evals/<stamp>/` in the project state
|
|
137
|
+
directory (the CLI prints the path); read it before editing the eval.
|
|
138
|
+
`--state-root <path>` keeps the raw session events too.
|
|
139
|
+
|
|
140
|
+
CI: `agent-sdk eval --dir . --json --no-stream --junit reports/evals.xml`.
|
|
141
|
+
Exit `1` on a failed gate, `2` when nothing matched, `--strict` to fail
|
|
142
|
+
on `scored`.
|
|
106
143
|
|
|
107
144
|
Every kept hillclimb change lands an eval that would have failed
|
|
108
145
|
before it. Never weaken a gate to pass a round.
|
|
@@ -28,8 +28,10 @@ Public docs: `node_modules/@cursor/july/dist/docs/llms.txt` or
|
|
|
28
28
|
per-project cache directory under `~/.cache`. Point cwd at a
|
|
29
29
|
checkout only when the agent must inherit that tree.
|
|
30
30
|
5. **Attached MCP is nameless** until `advertiseTools: true`.
|
|
31
|
-
6. **Model turns need
|
|
32
|
-
|
|
31
|
+
6. **Model turns need a Cursor credential** (`CURSOR_API_KEY`, then
|
|
32
|
+
`CURSOR_API_KEY_FILE`, then `CURSOR_SERVICE_ACCOUNT_KEY`, then
|
|
33
|
+
`agent-sdk login`). `validate`,
|
|
34
|
+
`info`, `call`, and `serve` bring-up do not.
|
|
33
35
|
|
|
34
36
|
## Folder structure
|
|
35
37
|
|
|
@@ -49,7 +51,6 @@ Path is identity. Full list: README "Folder structure".
|
|
|
49
51
|
| `agent/hooks/*.ts` | Observe-only |
|
|
50
52
|
| `agent/artifacts.ts` | Durable tagged outputs (`defineArtifacts`) |
|
|
51
53
|
| `agent/result.ts` | Host `commit` on the final assistant text (`defineResult`) |
|
|
52
|
-
| `agent/ab.ts` or `agent/ab/*.ts` | Live A/B (`defineAB`) |
|
|
53
54
|
| `agent/otel.ts` | OpenTelemetry (`defineOtel`) |
|
|
54
55
|
| `agent/schedules/*` | Cron. Never auto-fire under `--dev` |
|
|
55
56
|
| `agent/sandbox/workspace/` | Session seed files (local only) |
|
|
@@ -97,10 +98,10 @@ only this agent's directory.
|
|
|
97
98
|
| --- | --- |
|
|
98
99
|
| Scaffold | `skills/create-agent/SKILL.md` |
|
|
99
100
|
| Evals | `skills/evals/SKILL.md` |
|
|
100
|
-
| Live A/B | `skills/ab/SKILL.md` |
|
|
101
101
|
| OpenTelemetry | `skills/otel/SKILL.md` |
|
|
102
102
|
| GitHub | `skills/github/SKILL.md` |
|
|
103
103
|
| Slack | `skills/setup-slack/SKILL.md` |
|
|
104
104
|
| Host MCP OAuth | `skills/mcp-auth/SKILL.md` |
|
|
105
|
+
| Managed deployment | `skills/deploy/SKILL.md` |
|
|
105
106
|
| Local triage | `skills/debug/SKILL.md` |
|
|
106
107
|
| Measured improvement | `skills/hillclimb/SKILL.md` |
|
package/skills/github/SKILL.md
CHANGED
|
@@ -48,7 +48,7 @@ at deploy. Repos must share one GitHub owner.
|
|
|
48
48
|
|
|
49
49
|
| Source | When |
|
|
50
50
|
| --- | --- |
|
|
51
|
-
| `cursorAccount` + `serve --cursor-events` | Preferred. Signed-in host (`agent-sdk login`
|
|
51
|
+
| `cursorAccount` + `serve --cursor-events` | Preferred. Signed-in host (`agent-sdk login`, `CURSOR_API_KEY`, or `CURSOR_SERVICE_ACCOUNT_KEY`). Repos from the channel and from repeatable `--repo owner/name`. Cap 20, one GitHub owner |
|
|
52
52
|
| HTTP `POST /<slug>/v1/channels/github` with a webhook secret | `allowAll()` + `X-Hub-Signature-256` |
|
|
53
53
|
| HTTP, no secret | Loopback only. `serve --dev` also admits unsigned loopback (fixtures / forward) |
|
|
54
54
|
|