@cursor/july 0.1.1
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 +290 -0
- package/LICENSE.md +3 -0
- package/README.md +1233 -0
- package/dist/ab.d.ts +290 -0
- package/dist/ab.d.ts.map +1 -0
- package/dist/ab.js +386 -0
- package/dist/bin/agent-serve.d.ts +15 -0
- package/dist/bin/agent-serve.d.ts.map +1 -0
- package/dist/bin/agent-serve.js +754 -0
- package/dist/channels/github/api.d.ts +101 -0
- package/dist/channels/github/api.d.ts.map +1 -0
- package/dist/channels/github/api.js +229 -0
- package/dist/channels/github/auth.d.ts +67 -0
- package/dist/channels/github/auth.d.ts.map +1 -0
- package/dist/channels/github/auth.js +239 -0
- package/dist/channels/github/binding.d.ts +73 -0
- package/dist/channels/github/binding.d.ts.map +1 -0
- package/dist/channels/github/binding.js +114 -0
- package/dist/channels/github/defaults.d.ts +24 -0
- package/dist/channels/github/defaults.d.ts.map +1 -0
- package/dist/channels/github/defaults.js +100 -0
- package/dist/channels/github/events.d.ts +18 -0
- package/dist/channels/github/events.d.ts.map +1 -0
- package/dist/channels/github/events.js +59 -0
- package/dist/channels/github/forward.d.ts +137 -0
- package/dist/channels/github/forward.d.ts.map +1 -0
- package/dist/channels/github/forward.js +271 -0
- package/dist/channels/github/github-channel.d.ts +127 -0
- package/dist/channels/github/github-channel.d.ts.map +1 -0
- package/dist/channels/github/github-channel.js +1688 -0
- package/dist/channels/github/index.d.ts +52 -0
- package/dist/channels/github/index.d.ts.map +1 -0
- package/dist/channels/github/index.js +51 -0
- package/dist/channels/github/replay.d.ts +115 -0
- package/dist/channels/github/replay.d.ts.map +1 -0
- package/dist/channels/github/replay.js +282 -0
- package/dist/channels/github/state.d.ts +26 -0
- package/dist/channels/github/state.d.ts.map +1 -0
- package/dist/channels/github/state.js +50 -0
- package/dist/channels/github/types.d.ts +385 -0
- package/dist/channels/github/types.d.ts.map +1 -0
- package/dist/channels/github/types.js +1 -0
- package/dist/channels/slack/api.d.ts +117 -0
- package/dist/channels/slack/api.d.ts.map +1 -0
- package/dist/channels/slack/api.js +437 -0
- package/dist/channels/slack/approvals.d.ts +32 -0
- package/dist/channels/slack/approvals.d.ts.map +1 -0
- package/dist/channels/slack/approvals.js +157 -0
- package/dist/channels/slack/assistant.d.ts +23 -0
- package/dist/channels/slack/assistant.d.ts.map +1 -0
- package/dist/channels/slack/assistant.js +67 -0
- package/dist/channels/slack/auth.d.ts +40 -0
- package/dist/channels/slack/auth.d.ts.map +1 -0
- package/dist/channels/slack/auth.js +71 -0
- package/dist/channels/slack/channel-watch.d.ts +46 -0
- package/dist/channels/slack/channel-watch.d.ts.map +1 -0
- package/dist/channels/slack/channel-watch.js +180 -0
- package/dist/channels/slack/constants.d.ts +17 -0
- package/dist/channels/slack/constants.d.ts.map +1 -0
- package/dist/channels/slack/constants.js +27 -0
- package/dist/channels/slack/credentials.d.ts +35 -0
- package/dist/channels/slack/credentials.d.ts.map +1 -0
- package/dist/channels/slack/credentials.js +88 -0
- package/dist/channels/slack/cursor-account.d.ts +76 -0
- package/dist/channels/slack/cursor-account.d.ts.map +1 -0
- package/dist/channels/slack/cursor-account.js +88 -0
- package/dist/channels/slack/defaults.d.ts +32 -0
- package/dist/channels/slack/defaults.d.ts.map +1 -0
- package/dist/channels/slack/defaults.js +380 -0
- package/dist/channels/slack/dispatch.d.ts +43 -0
- package/dist/channels/slack/dispatch.d.ts.map +1 -0
- package/dist/channels/slack/dispatch.js +185 -0
- package/dist/channels/slack/doctor.d.ts +24 -0
- package/dist/channels/slack/doctor.d.ts.map +1 -0
- package/dist/channels/slack/doctor.js +115 -0
- package/dist/channels/slack/event-id-dedupe.d.ts +10 -0
- package/dist/channels/slack/event-id-dedupe.d.ts.map +1 -0
- package/dist/channels/slack/event-id-dedupe.js +23 -0
- package/dist/channels/slack/inbound.d.ts +41 -0
- package/dist/channels/slack/inbound.d.ts.map +1 -0
- package/dist/channels/slack/inbound.js +166 -0
- package/dist/channels/slack/index.d.ts +45 -0
- package/dist/channels/slack/index.d.ts.map +1 -0
- package/dist/channels/slack/index.js +44 -0
- package/dist/channels/slack/init.d.ts +32 -0
- package/dist/channels/slack/init.d.ts.map +1 -0
- package/dist/channels/slack/init.js +82 -0
- package/dist/channels/slack/interactive.d.ts +19 -0
- package/dist/channels/slack/interactive.d.ts.map +1 -0
- package/dist/channels/slack/interactive.js +142 -0
- package/dist/channels/slack/links.d.ts +10 -0
- package/dist/channels/slack/links.d.ts.map +1 -0
- package/dist/channels/slack/links.js +19 -0
- package/dist/channels/slack/live-delivery.d.ts +75 -0
- package/dist/channels/slack/live-delivery.d.ts.map +1 -0
- package/dist/channels/slack/live-delivery.js +143 -0
- package/dist/channels/slack/log.d.ts +25 -0
- package/dist/channels/slack/log.d.ts.map +1 -0
- package/dist/channels/slack/log.js +47 -0
- package/dist/channels/slack/manifest.d.ts +57 -0
- package/dist/channels/slack/manifest.d.ts.map +1 -0
- package/dist/channels/slack/manifest.js +110 -0
- package/dist/channels/slack/pr-ref.d.ts +18 -0
- package/dist/channels/slack/pr-ref.d.ts.map +1 -0
- package/dist/channels/slack/pr-ref.js +36 -0
- package/dist/channels/slack/setup.d.ts +14 -0
- package/dist/channels/slack/setup.d.ts.map +1 -0
- package/dist/channels/slack/setup.js +86 -0
- package/dist/channels/slack/slack-channel.d.ts +15 -0
- package/dist/channels/slack/slack-channel.d.ts.map +1 -0
- package/dist/channels/slack/slack-channel.js +281 -0
- package/dist/channels/slack/socket-mode.d.ts +26 -0
- package/dist/channels/slack/socket-mode.d.ts.map +1 -0
- package/dist/channels/slack/socket-mode.js +116 -0
- package/dist/channels/slack/stream.d.ts +26 -0
- package/dist/channels/slack/stream.d.ts.map +1 -0
- package/dist/channels/slack/stream.js +39 -0
- package/dist/channels/slack/tool-approval-events.d.ts +33 -0
- package/dist/channels/slack/tool-approval-events.d.ts.map +1 -0
- package/dist/channels/slack/tool-approval-events.js +129 -0
- package/dist/channels/slack/types.d.ts +326 -0
- package/dist/channels/slack/types.d.ts.map +1 -0
- package/dist/channels/slack/types.js +4 -0
- package/dist/channels.d.ts +116 -0
- package/dist/channels.d.ts.map +1 -0
- package/dist/channels.js +294 -0
- package/dist/connections.d.ts +75 -0
- package/dist/connections.d.ts.map +1 -0
- package/dist/connections.js +75 -0
- package/dist/docs/404.html +22 -0
- package/dist/docs/ab.html +87 -0
- package/dist/docs/assets/ab.md.COdXkces.js +63 -0
- package/dist/docs/assets/ab.md.COdXkces.lean.js +1 -0
- package/dist/docs/assets/app.DqfFEmJd.js +1 -0
- package/dist/docs/assets/building-with-agents.md.CJCtZCyi.js +13 -0
- package/dist/docs/assets/building-with-agents.md.CJCtZCyi.lean.js +1 -0
- package/dist/docs/assets/chunks/@localSearchIndexroot.CcVk1uKq.js +1 -0
- package/dist/docs/assets/chunks/VPLocalSearchBox.BaLEdS15.js +9 -0
- package/dist/docs/assets/chunks/framework.CAZyNGu9.js +19 -0
- package/dist/docs/assets/chunks/theme.CZRvu_0q.js +2 -0
- package/dist/docs/assets/concepts.md.Cfb9b-k1.js +4 -0
- package/dist/docs/assets/concepts.md.Cfb9b-k1.lean.js +1 -0
- package/dist/docs/assets/deployment.md.Dx1TYNk5.js +14 -0
- package/dist/docs/assets/deployment.md.Dx1TYNk5.lean.js +1 -0
- package/dist/docs/assets/evals.md.DPZ_MAnI.js +85 -0
- package/dist/docs/assets/evals.md.DPZ_MAnI.lean.js +1 -0
- package/dist/docs/assets/guides_agent-to-agent.md.CrtrsySy.js +10 -0
- package/dist/docs/assets/guides_agent-to-agent.md.CrtrsySy.lean.js +1 -0
- package/dist/docs/assets/guides_cloud-runtime.md.CYlNMTNp.js +9 -0
- package/dist/docs/assets/guides_cloud-runtime.md.CYlNMTNp.lean.js +1 -0
- package/dist/docs/assets/guides_github.md.DwbKhCeS.js +20 -0
- package/dist/docs/assets/guides_github.md.DwbKhCeS.lean.js +1 -0
- package/dist/docs/assets/guides_human-in-the-loop.md.Dvuctx7s.js +28 -0
- package/dist/docs/assets/guides_human-in-the-loop.md.Dvuctx7s.lean.js +1 -0
- package/dist/docs/assets/guides_slack.md.bv41fHfW.js +37 -0
- package/dist/docs/assets/guides_slack.md.bv41fHfW.lean.js +1 -0
- package/dist/docs/assets/guides_webhooks.md.hFTik3lf.js +50 -0
- package/dist/docs/assets/guides_webhooks.md.hFTik3lf.lean.js +1 -0
- package/dist/docs/assets/hillclimbing.md.DHNast08.js +4 -0
- package/dist/docs/assets/hillclimbing.md.DHNast08.lean.js +1 -0
- package/dist/docs/assets/index.md.BPKcj5AI.js +20 -0
- package/dist/docs/assets/index.md.BPKcj5AI.lean.js +1 -0
- package/dist/docs/assets/inter-italic-cyrillic-ext.r48I6akx.woff2 +0 -0
- package/dist/docs/assets/inter-italic-cyrillic.By2_1cv3.woff2 +0 -0
- package/dist/docs/assets/inter-italic-greek-ext.1u6EdAuj.woff2 +0 -0
- package/dist/docs/assets/inter-italic-greek.DJ8dCoTZ.woff2 +0 -0
- package/dist/docs/assets/inter-italic-latin-ext.CN1xVJS-.woff2 +0 -0
- package/dist/docs/assets/inter-italic-latin.C2AdPX0b.woff2 +0 -0
- package/dist/docs/assets/inter-italic-vietnamese.BSbpV94h.woff2 +0 -0
- package/dist/docs/assets/inter-roman-cyrillic-ext.BBPuwvHQ.woff2 +0 -0
- package/dist/docs/assets/inter-roman-cyrillic.C5lxZ8CY.woff2 +0 -0
- package/dist/docs/assets/inter-roman-greek-ext.CqjqNYQ-.woff2 +0 -0
- package/dist/docs/assets/inter-roman-greek.BBVDIX6e.woff2 +0 -0
- package/dist/docs/assets/inter-roman-latin-ext.4ZJIpNVo.woff2 +0 -0
- package/dist/docs/assets/inter-roman-latin.Di8DUHzh.woff2 +0 -0
- package/dist/docs/assets/inter-roman-vietnamese.BjW4sHH5.woff2 +0 -0
- package/dist/docs/assets/quickstart.md.tVPiGK_L.js +35 -0
- package/dist/docs/assets/quickstart.md.tVPiGK_L.lean.js +1 -0
- package/dist/docs/assets/reference_agent-config.md.Bpd7HQwf.js +34 -0
- package/dist/docs/assets/reference_agent-config.md.Bpd7HQwf.lean.js +1 -0
- package/dist/docs/assets/reference_channels.md.D7JTR03W.js +53 -0
- package/dist/docs/assets/reference_channels.md.D7JTR03W.lean.js +1 -0
- package/dist/docs/assets/reference_cli.md.DA730zCu.js +33 -0
- package/dist/docs/assets/reference_cli.md.DA730zCu.lean.js +1 -0
- package/dist/docs/assets/reference_connections.md.C3vNH_DE.js +26 -0
- package/dist/docs/assets/reference_connections.md.C3vNH_DE.lean.js +1 -0
- package/dist/docs/assets/reference_hooks.md.BCEc3MyM.js +12 -0
- package/dist/docs/assets/reference_hooks.md.BCEc3MyM.lean.js +1 -0
- package/dist/docs/assets/reference_http-api.md.DBAahtdz.js +11 -0
- package/dist/docs/assets/reference_http-api.md.DBAahtdz.lean.js +1 -0
- package/dist/docs/assets/reference_instructions.md.BC05LEQ8.js +12 -0
- package/dist/docs/assets/reference_instructions.md.BC05LEQ8.lean.js +1 -0
- package/dist/docs/assets/reference_playground.md.CPZhfYaO.js +1 -0
- package/dist/docs/assets/reference_playground.md.CPZhfYaO.lean.js +1 -0
- package/dist/docs/assets/reference_project-layout.md.Bd_CKtNS.js +31 -0
- package/dist/docs/assets/reference_project-layout.md.Bd_CKtNS.lean.js +1 -0
- package/dist/docs/assets/reference_schedules.md.D7qijxLk.js +82 -0
- package/dist/docs/assets/reference_schedules.md.D7qijxLk.lean.js +1 -0
- package/dist/docs/assets/reference_sessions.md.DdjWabnN.js +8 -0
- package/dist/docs/assets/reference_sessions.md.DdjWabnN.lean.js +1 -0
- package/dist/docs/assets/reference_skills.md.VQnlBT3Q.js +15 -0
- package/dist/docs/assets/reference_skills.md.VQnlBT3Q.lean.js +1 -0
- package/dist/docs/assets/reference_subagents.md.CIRAVcPK.js +10 -0
- package/dist/docs/assets/reference_subagents.md.CIRAVcPK.lean.js +1 -0
- package/dist/docs/assets/reference_tools.md.DF5kwlt0.js +46 -0
- package/dist/docs/assets/reference_tools.md.DF5kwlt0.lean.js +1 -0
- package/dist/docs/assets/scaffolding-agents.md.CyYfWGdc.js +1 -0
- package/dist/docs/assets/scaffolding-agents.md.CyYfWGdc.lean.js +1 -0
- package/dist/docs/assets/style.Bj-IXa5W.css +1 -0
- package/dist/docs/assets/troubleshooting.md.DkovjS7h.js +1 -0
- package/dist/docs/assets/troubleshooting.md.DkovjS7h.lean.js +1 -0
- package/dist/docs/building-with-agents.html +37 -0
- package/dist/docs/concepts.html +28 -0
- package/dist/docs/deployment.html +38 -0
- package/dist/docs/evals.html +109 -0
- package/dist/docs/guides/agent-to-agent.html +34 -0
- package/dist/docs/guides/cloud-runtime.html +33 -0
- package/dist/docs/guides/github.html +44 -0
- package/dist/docs/guides/human-in-the-loop.html +52 -0
- package/dist/docs/guides/slack.html +61 -0
- package/dist/docs/guides/webhooks.html +74 -0
- package/dist/docs/hashmap.json +1 -0
- package/dist/docs/hillclimbing.html +28 -0
- package/dist/docs/index.html +44 -0
- package/dist/docs/quickstart.html +59 -0
- package/dist/docs/reference/agent-config.html +58 -0
- package/dist/docs/reference/channels.html +77 -0
- package/dist/docs/reference/cli.html +57 -0
- package/dist/docs/reference/connections.html +50 -0
- package/dist/docs/reference/hooks.html +36 -0
- package/dist/docs/reference/http-api.html +35 -0
- package/dist/docs/reference/instructions.html +36 -0
- package/dist/docs/reference/playground.html +25 -0
- package/dist/docs/reference/project-layout.html +55 -0
- package/dist/docs/reference/schedules.html +106 -0
- package/dist/docs/reference/sessions.html +32 -0
- package/dist/docs/reference/skills.html +39 -0
- package/dist/docs/reference/subagents.html +34 -0
- package/dist/docs/reference/tools.html +70 -0
- package/dist/docs/scaffolding-agents.html +25 -0
- package/dist/docs/troubleshooting.html +25 -0
- package/dist/docs/vp-icons.css +0 -0
- package/dist/evals.d.ts +312 -0
- package/dist/evals.d.ts.map +1 -0
- package/dist/evals.js +254 -0
- package/dist/hooks.d.ts +23 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +23 -0
- package/dist/index.d.ts +71 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +101 -0
- package/dist/internal/ab-collector.d.ts +42 -0
- package/dist/internal/ab-collector.d.ts.map +1 -0
- package/dist/internal/ab-collector.js +153 -0
- package/dist/internal/ab-fold.d.ts +36 -0
- package/dist/internal/ab-fold.d.ts.map +1 -0
- package/dist/internal/ab-fold.js +171 -0
- package/dist/internal/ab-snapshot.d.ts +70 -0
- package/dist/internal/ab-snapshot.d.ts.map +1 -0
- package/dist/internal/ab-snapshot.js +208 -0
- package/dist/internal/approval-gate.d.ts +34 -0
- package/dist/internal/approval-gate.d.ts.map +1 -0
- package/dist/internal/approval-gate.js +85 -0
- package/dist/internal/auth.d.ts +8 -0
- package/dist/internal/auth.d.ts.map +1 -0
- package/dist/internal/auth.js +27 -0
- package/dist/internal/authored-alias-hooks.d.ts +31 -0
- package/dist/internal/authored-alias-hooks.d.ts.map +1 -0
- package/dist/internal/authored-alias-hooks.js +43 -0
- package/dist/internal/authored-loaders.d.ts +25 -0
- package/dist/internal/authored-loaders.d.ts.map +1 -0
- package/dist/internal/authored-loaders.js +129 -0
- package/dist/internal/bounded-int.d.ts +11 -0
- package/dist/internal/bounded-int.d.ts.map +1 -0
- package/dist/internal/bounded-int.js +13 -0
- package/dist/internal/brand.d.ts +6 -0
- package/dist/internal/brand.d.ts.map +1 -0
- package/dist/internal/brand.js +17 -0
- package/dist/internal/chat-client.d.ts +19 -0
- package/dist/internal/chat-client.d.ts.map +1 -0
- package/dist/internal/chat-client.js +327 -0
- package/dist/internal/cli-ax.d.ts +58 -0
- package/dist/internal/cli-ax.d.ts.map +1 -0
- package/dist/internal/cli-ax.js +345 -0
- package/dist/internal/cli-cursor.d.ts +20 -0
- package/dist/internal/cli-cursor.d.ts.map +1 -0
- package/dist/internal/cli-cursor.js +227 -0
- package/dist/internal/cli-github.d.ts +47 -0
- package/dist/internal/cli-github.d.ts.map +1 -0
- package/dist/internal/cli-github.js +644 -0
- package/dist/internal/cli-slack.d.ts +18 -0
- package/dist/internal/cli-slack.d.ts.map +1 -0
- package/dist/internal/cli-slack.js +144 -0
- package/dist/internal/cloud-merge.d.ts +23 -0
- package/dist/internal/cloud-merge.d.ts.map +1 -0
- package/dist/internal/cloud-merge.js +28 -0
- package/dist/internal/cron.d.ts +17 -0
- package/dist/internal/cron.d.ts.map +1 -0
- package/dist/internal/cron.js +60 -0
- package/dist/internal/cursor/account-mcp.d.ts +95 -0
- package/dist/internal/cursor/account-mcp.d.ts.map +1 -0
- package/dist/internal/cursor/account-mcp.js +342 -0
- package/dist/internal/cursor/backend-client.d.ts +118 -0
- package/dist/internal/cursor/backend-client.d.ts.map +1 -0
- package/dist/internal/cursor/backend-client.js +477 -0
- package/dist/internal/cursor/credentials.d.ts +112 -0
- package/dist/internal/cursor/credentials.d.ts.map +1 -0
- package/dist/internal/cursor/credentials.js +329 -0
- package/dist/internal/cursor-event-relay.d.ts +111 -0
- package/dist/internal/cursor-event-relay.d.ts.map +1 -0
- package/dist/internal/cursor-event-relay.js +181 -0
- package/dist/internal/cursor-relay-core.d.ts +113 -0
- package/dist/internal/cursor-relay-core.d.ts.map +1 -0
- package/dist/internal/cursor-relay-core.js +364 -0
- package/dist/internal/cursor-slack-relay.d.ts +94 -0
- package/dist/internal/cursor-slack-relay.d.ts.map +1 -0
- package/dist/internal/cursor-slack-relay.js +171 -0
- package/dist/internal/describe-error.d.ts +3 -0
- package/dist/internal/describe-error.d.ts.map +1 -0
- package/dist/internal/describe-error.js +4 -0
- package/dist/internal/dev-mode.d.ts +13 -0
- package/dist/internal/dev-mode.d.ts.map +1 -0
- package/dist/internal/dev-mode.js +17 -0
- package/dist/internal/discovery.d.ts +55 -0
- package/dist/internal/discovery.d.ts.map +1 -0
- package/dist/internal/discovery.js +1427 -0
- package/dist/internal/distribution.d.ts +47 -0
- package/dist/internal/distribution.d.ts.map +1 -0
- package/dist/internal/distribution.js +82 -0
- package/dist/internal/docs-site.d.ts +28 -0
- package/dist/internal/docs-site.d.ts.map +1 -0
- package/dist/internal/docs-site.js +169 -0
- package/dist/internal/duration.d.ts +8 -0
- package/dist/internal/duration.d.ts.map +1 -0
- package/dist/internal/duration.js +35 -0
- package/dist/internal/eval-run-store.d.ts +81 -0
- package/dist/internal/eval-run-store.d.ts.map +1 -0
- package/dist/internal/eval-run-store.js +396 -0
- package/dist/internal/eval-runner.d.ts +76 -0
- package/dist/internal/eval-runner.d.ts.map +1 -0
- package/dist/internal/eval-runner.js +336 -0
- package/dist/internal/event-log.d.ts +51 -0
- package/dist/internal/event-log.d.ts.map +1 -0
- package/dist/internal/event-log.js +167 -0
- package/dist/internal/event-mapper.d.ts +46 -0
- package/dist/internal/event-mapper.d.ts.map +1 -0
- package/dist/internal/event-mapper.js +226 -0
- package/dist/internal/frontmatter.d.ts +12 -0
- package/dist/internal/frontmatter.d.ts.map +1 -0
- package/dist/internal/frontmatter.js +61 -0
- package/dist/internal/github-fanout.d.ts +32 -0
- package/dist/internal/github-fanout.d.ts.map +1 -0
- package/dist/internal/github-fanout.js +122 -0
- package/dist/internal/handleAgentServeTrigger.d.ts +59 -0
- package/dist/internal/handleAgentServeTrigger.d.ts.map +1 -0
- package/dist/internal/handleAgentServeTrigger.js +115 -0
- package/dist/internal/host-platforms.d.ts +40 -0
- package/dist/internal/host-platforms.d.ts.map +1 -0
- package/dist/internal/host-platforms.js +113 -0
- package/dist/internal/http-channel.d.ts +54 -0
- package/dist/internal/http-channel.d.ts.map +1 -0
- package/dist/internal/http-channel.js +382 -0
- package/dist/internal/ids.d.ts +19 -0
- package/dist/internal/ids.d.ts.map +1 -0
- package/dist/internal/ids.js +34 -0
- package/dist/internal/init-project.d.ts +22 -0
- package/dist/internal/init-project.d.ts.map +1 -0
- package/dist/internal/init-project.js +125 -0
- package/dist/internal/json-dir-store.d.ts +32 -0
- package/dist/internal/json-dir-store.d.ts.map +1 -0
- package/dist/internal/json-dir-store.js +100 -0
- package/dist/internal/json-schema.d.ts +18 -0
- package/dist/internal/json-schema.d.ts.map +1 -0
- package/dist/internal/json-schema.js +53 -0
- package/dist/internal/log-ring.d.ts +23 -0
- package/dist/internal/log-ring.d.ts.map +1 -0
- package/dist/internal/log-ring.js +42 -0
- package/dist/internal/map-pool.d.ts +6 -0
- package/dist/internal/map-pool.d.ts.map +1 -0
- package/dist/internal/map-pool.js +41 -0
- package/dist/internal/mcp-endpoint.d.ts +59 -0
- package/dist/internal/mcp-endpoint.d.ts.map +1 -0
- package/dist/internal/mcp-endpoint.js +355 -0
- package/dist/internal/mcp-host.d.ts +28 -0
- package/dist/internal/mcp-host.d.ts.map +1 -0
- package/dist/internal/mcp-host.js +162 -0
- package/dist/internal/net.d.ts +5 -0
- package/dist/internal/net.d.ts.map +1 -0
- package/dist/internal/net.js +30 -0
- package/dist/internal/peer-connections.d.ts +44 -0
- package/dist/internal/peer-connections.d.ts.map +1 -0
- package/dist/internal/peer-connections.js +67 -0
- package/dist/internal/playground/static.d.ts +35 -0
- package/dist/internal/playground/static.d.ts.map +1 -0
- package/dist/internal/playground/static.js +162 -0
- package/dist/internal/playground/toolchain.d.ts +57 -0
- package/dist/internal/playground/toolchain.d.ts.map +1 -0
- package/dist/internal/playground/toolchain.js +226 -0
- package/dist/internal/reminder-runner.d.ts +62 -0
- package/dist/internal/reminder-runner.d.ts.map +1 -0
- package/dist/internal/reminder-runner.js +582 -0
- package/dist/internal/reminder-schedule.d.ts +22 -0
- package/dist/internal/reminder-schedule.d.ts.map +1 -0
- package/dist/internal/reminder-schedule.js +82 -0
- package/dist/internal/reminder-store.d.ts +58 -0
- package/dist/internal/reminder-store.d.ts.map +1 -0
- package/dist/internal/reminder-store.js +106 -0
- package/dist/internal/resolved-connections.d.ts +41 -0
- package/dist/internal/resolved-connections.d.ts.map +1 -0
- package/dist/internal/resolved-connections.js +73 -0
- package/dist/internal/review-comments.d.ts +50 -0
- package/dist/internal/review-comments.d.ts.map +1 -0
- package/dist/internal/review-comments.js +194 -0
- package/dist/internal/router.d.ts +33 -0
- package/dist/internal/router.d.ts.map +1 -0
- package/dist/internal/router.js +93 -0
- package/dist/internal/run-client.d.ts +49 -0
- package/dist/internal/run-client.d.ts.map +1 -0
- package/dist/internal/run-client.js +208 -0
- package/dist/internal/schedule-runner.d.ts +31 -0
- package/dist/internal/schedule-runner.d.ts.map +1 -0
- package/dist/internal/schedule-runner.js +126 -0
- package/dist/internal/sdk-runner.d.ts +41 -0
- package/dist/internal/sdk-runner.d.ts.map +1 -0
- package/dist/internal/sdk-runner.js +221 -0
- package/dist/internal/server.d.ts +25 -0
- package/dist/internal/server.d.ts.map +1 -0
- package/dist/internal/server.js +1374 -0
- package/dist/internal/session-engine.d.ts +287 -0
- package/dist/internal/session-engine.d.ts.map +1 -0
- package/dist/internal/session-engine.js +1377 -0
- package/dist/internal/session-store.d.ts +29 -0
- package/dist/internal/session-store.d.ts.map +1 -0
- package/dist/internal/session-store.js +140 -0
- package/dist/internal/session-urls.d.ts +10 -0
- package/dist/internal/session-urls.d.ts.map +1 -0
- package/dist/internal/session-urls.js +25 -0
- package/dist/internal/stream-progress.d.ts +14 -0
- package/dist/internal/stream-progress.d.ts.map +1 -0
- package/dist/internal/stream-progress.js +195 -0
- package/dist/internal/tool-result.d.ts +20 -0
- package/dist/internal/tool-result.d.ts.map +1 -0
- package/dist/internal/tool-result.js +45 -0
- package/dist/internal/trajectory.d.ts +56 -0
- package/dist/internal/trajectory.d.ts.map +1 -0
- package/dist/internal/trajectory.js +248 -0
- package/dist/internal/workspace.d.ts +42 -0
- package/dist/internal/workspace.d.ts.map +1 -0
- package/dist/internal/workspace.js +199 -0
- package/dist/playground/assets/cursor-icons-outline-oY2V_mvK.woff2 +0 -0
- package/dist/playground/assets/index-1K-hG-7p.css +1 -0
- package/dist/playground/assets/index-FlWjhg3x.js +79 -0
- package/dist/playground/index.html +17 -0
- package/dist/reminders.d.ts +23 -0
- package/dist/reminders.d.ts.map +1 -0
- package/dist/reminders.js +22 -0
- package/dist/schedules.d.ts +23 -0
- package/dist/schedules.d.ts.map +1 -0
- package/dist/schedules.js +26 -0
- package/dist/skills.d.ts +22 -0
- package/dist/skills.d.ts.map +1 -0
- package/dist/skills.js +22 -0
- package/dist/tools.d.ts +92 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +68 -0
- package/dist/types.d.ts +1609 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +80 -0
- package/docs/README.md +174 -0
- package/docs/ab.md +355 -0
- package/docs/building-with-agents.md +129 -0
- package/docs/concepts.md +177 -0
- package/docs/deployment.md +218 -0
- package/docs/evals.md +383 -0
- package/docs/guides/agent-to-agent.md +118 -0
- package/docs/guides/cloud-runtime.md +122 -0
- package/docs/guides/github.md +172 -0
- package/docs/guides/human-in-the-loop.md +131 -0
- package/docs/guides/slack.md +245 -0
- package/docs/guides/webhooks.md +201 -0
- package/docs/hillclimbing.md +93 -0
- package/docs/quickstart.md +183 -0
- package/docs/reference/agent-config.md +154 -0
- package/docs/reference/channels.md +206 -0
- package/docs/reference/cli.md +257 -0
- package/docs/reference/connections.md +137 -0
- package/docs/reference/hooks.md +74 -0
- package/docs/reference/http-api.md +219 -0
- package/docs/reference/instructions.md +77 -0
- package/docs/reference/playground.md +67 -0
- package/docs/reference/project-layout.md +119 -0
- package/docs/reference/schedules.md +220 -0
- package/docs/reference/sessions.md +165 -0
- package/docs/reference/skills.md +79 -0
- package/docs/reference/subagents.md +74 -0
- package/docs/reference/tools.md +203 -0
- package/docs/scaffolding-agents.md +113 -0
- package/docs/troubleshooting.md +95 -0
- package/package.json +185 -0
- package/skills/ab/SKILL.md +139 -0
- package/skills/create-agent/SKILL.md +219 -0
- package/skills/debug/SKILL.md +71 -0
- package/skills/evals/SKILL.md +217 -0
- package/skills/framework-map/SKILL.md +142 -0
- package/skills/github/SKILL.md +144 -0
- package/skills/hillclimb/SKILL.md +162 -0
- package/skills/setup-slack/SKILL.md +180 -0
- package/src/ab.ts +675 -0
- package/src/bin/agent-serve.ts +949 -0
- package/src/channels/github/api.ts +374 -0
- package/src/channels/github/auth.ts +275 -0
- package/src/channels/github/binding.ts +223 -0
- package/src/channels/github/defaults.ts +111 -0
- package/src/channels/github/events.ts +72 -0
- package/src/channels/github/forward.ts +381 -0
- package/src/channels/github/github-channel.ts +2270 -0
- package/src/channels/github/index.ts +52 -0
- package/src/channels/github/replay.ts +387 -0
- package/src/channels/github/state.ts +95 -0
- package/src/channels/github/types.ts +490 -0
- package/src/channels/slack/api.ts +580 -0
- package/src/channels/slack/approvals.ts +198 -0
- package/src/channels/slack/assistant.ts +76 -0
- package/src/channels/slack/auth.ts +112 -0
- package/src/channels/slack/channel-watch.ts +219 -0
- package/src/channels/slack/constants.ts +30 -0
- package/src/channels/slack/credentials.ts +90 -0
- package/src/channels/slack/cursor-account.ts +166 -0
- package/src/channels/slack/defaults.ts +450 -0
- package/src/channels/slack/dispatch.ts +293 -0
- package/src/channels/slack/doctor.ts +135 -0
- package/src/channels/slack/event-id-dedupe.ts +30 -0
- package/src/channels/slack/inbound.ts +219 -0
- package/src/channels/slack/index.ts +45 -0
- package/src/channels/slack/init.ts +133 -0
- package/src/channels/slack/interactive.ts +194 -0
- package/src/channels/slack/links.ts +23 -0
- package/src/channels/slack/live-delivery.ts +201 -0
- package/src/channels/slack/log.ts +83 -0
- package/src/channels/slack/manifest.ts +179 -0
- package/src/channels/slack/pr-ref.ts +50 -0
- package/src/channels/slack/setup.ts +97 -0
- package/src/channels/slack/slack-channel.ts +374 -0
- package/src/channels/slack/socket-mode.ts +154 -0
- package/src/channels/slack/stream.ts +63 -0
- package/src/channels/slack/tool-approval-events.ts +136 -0
- package/src/channels/slack/types.ts +349 -0
- package/src/channels.ts +385 -0
- package/src/connections.ts +89 -0
- package/src/evals.ts +501 -0
- package/src/hooks.ts +33 -0
- package/src/index.ts +184 -0
- package/src/internal/ab-collector.ts +210 -0
- package/src/internal/ab-fold.ts +228 -0
- package/src/internal/ab-snapshot.ts +335 -0
- package/src/internal/approval-gate.ts +115 -0
- package/src/internal/auth.ts +39 -0
- package/src/internal/authored-alias-hooks.ts +69 -0
- package/src/internal/authored-loaders.ts +138 -0
- package/src/internal/bounded-int.ts +27 -0
- package/src/internal/brand.ts +29 -0
- package/src/internal/chat-client.ts +407 -0
- package/src/internal/cli-ax.ts +474 -0
- package/src/internal/cli-cursor.ts +275 -0
- package/src/internal/cli-github.ts +849 -0
- package/src/internal/cli-slack.ts +175 -0
- package/src/internal/cloud-merge.ts +41 -0
- package/src/internal/cron.ts +78 -0
- package/src/internal/cursor/account-mcp.ts +472 -0
- package/src/internal/cursor/backend-client.ts +614 -0
- package/src/internal/cursor/credentials.ts +401 -0
- package/src/internal/cursor-event-relay.ts +281 -0
- package/src/internal/cursor-relay-core.ts +444 -0
- package/src/internal/cursor-slack-relay.ts +242 -0
- package/src/internal/describe-error.ts +4 -0
- package/src/internal/dev-mode.ts +20 -0
- package/src/internal/discovery.ts +1709 -0
- package/src/internal/distribution.ts +97 -0
- package/src/internal/docs-site.ts +191 -0
- package/src/internal/duration.ts +39 -0
- package/src/internal/eval-run-store.ts +519 -0
- package/src/internal/eval-runner.ts +522 -0
- package/src/internal/event-log.ts +175 -0
- package/src/internal/event-mapper.ts +272 -0
- package/src/internal/frontmatter.ts +77 -0
- package/src/internal/github-fanout.ts +159 -0
- package/src/internal/handleAgentServeTrigger.ts +156 -0
- package/src/internal/host-platforms.ts +144 -0
- package/src/internal/http-channel.ts +546 -0
- package/src/internal/ids.ts +44 -0
- package/src/internal/init-project.ts +165 -0
- package/src/internal/json-dir-store.ts +109 -0
- package/src/internal/json-schema.ts +69 -0
- package/src/internal/log-ring.ts +59 -0
- package/src/internal/map-pool.ts +32 -0
- package/src/internal/mcp-endpoint.ts +518 -0
- package/src/internal/mcp-host.ts +211 -0
- package/src/internal/net.ts +31 -0
- package/src/internal/peer-connections.ts +100 -0
- package/src/internal/playground/static.ts +189 -0
- package/src/internal/playground/toolchain.ts +277 -0
- package/src/internal/reminder-runner.ts +756 -0
- package/src/internal/reminder-schedule.ts +106 -0
- package/src/internal/reminder-store.ts +145 -0
- package/src/internal/resolved-connections.ts +145 -0
- package/src/internal/review-comments.ts +268 -0
- package/src/internal/router.ts +145 -0
- package/src/internal/run-client.ts +320 -0
- package/src/internal/schedule-runner.ts +161 -0
- package/src/internal/sdk-runner.ts +315 -0
- package/src/internal/server.ts +1737 -0
- package/src/internal/session-engine.ts +1810 -0
- package/src/internal/session-store.ts +147 -0
- package/src/internal/session-urls.ts +40 -0
- package/src/internal/stream-progress.ts +254 -0
- package/src/internal/tool-result.ts +54 -0
- package/src/internal/trajectory.ts +306 -0
- package/src/internal/workspace.ts +223 -0
- package/src/reminders.ts +35 -0
- package/src/schedules.ts +37 -0
- package/src/skills.ts +27 -0
- package/src/tools.ts +127 -0
- package/src/types.ts +1848 -0
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Tools"
|
|
3
|
+
description: "Define typed actions the model can call, gate the sensitive ones on approval, and call any server tool without a model turn."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Tools
|
|
7
|
+
|
|
8
|
+
A tool is a typed action the model can call: hit an API, run a query,
|
|
9
|
+
write a file. Each file in `agent/tools/` defines one tool, and the
|
|
10
|
+
filename becomes the tool name the model sees. Tools come in two
|
|
11
|
+
execution flavors: server tools run in-process on the serve host, and
|
|
12
|
+
agent tools run as scripts where the agent runs. Every server tool can
|
|
13
|
+
also be called directly, with no model turn.
|
|
14
|
+
|
|
15
|
+
## Define a server tool
|
|
16
|
+
|
|
17
|
+
By default, `execute` runs in-process on the serving host with full
|
|
18
|
+
access to `process.env` and your `agent/lib/` code. Server tools require
|
|
19
|
+
the `local` runtime.
|
|
20
|
+
|
|
21
|
+
```ts
|
|
22
|
+
// agent/tools/inspect_pr.ts
|
|
23
|
+
import { defineTool } from "@cursor/july/tools";
|
|
24
|
+
import { z } from "zod";
|
|
25
|
+
|
|
26
|
+
export default defineTool({
|
|
27
|
+
description: "Inspect a pull request before approval.",
|
|
28
|
+
// execution: "server" is the default
|
|
29
|
+
inputSchema: z.object({ prUrl: z.string().url() }),
|
|
30
|
+
async execute({ prUrl }, ctx) {
|
|
31
|
+
return { prUrl, checks: ["unit", "lint"], ready: true };
|
|
32
|
+
},
|
|
33
|
+
});
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
A tool definition needs a filename slug (the model-facing name), a
|
|
37
|
+
`description` written for the model, an optional `inputSchema`, and the
|
|
38
|
+
code that runs it. With a Zod `inputSchema`, the input is validated before
|
|
39
|
+
`execute` runs and the input type is inferred. A plain JSON Schema
|
|
40
|
+
object is forwarded as-is and the input arrives as raw JSON.
|
|
41
|
+
|
|
42
|
+
### The `ctx` parameter
|
|
43
|
+
|
|
44
|
+
`execute` receives a `ctx` with the runtime accessors:
|
|
45
|
+
|
|
46
|
+
| Member | What it is |
|
|
47
|
+
| --- | --- |
|
|
48
|
+
| `ctx.toolCallId` | The call id, matching the `actions.requested` / `action.result` stream events |
|
|
49
|
+
| `ctx.session` | Read-only session info: id, channel, mode, auth |
|
|
50
|
+
| `ctx.workspaceDir` | The session's workspace directory |
|
|
51
|
+
| `ctx.host.mcp` | Authored MCP connections: `names()`, `listTools(name)`, `callTool(name, tool, args)` |
|
|
52
|
+
| `ctx.host.github` / `ctx.host.slack` | Shared host clients when those packs are configured |
|
|
53
|
+
|
|
54
|
+
### Return values
|
|
55
|
+
|
|
56
|
+
`execute` may return a string (passed to the model verbatim), a
|
|
57
|
+
JSON-shaped value (serialized), or the envelope
|
|
58
|
+
`{ content: [...], isError? }` for rich results. Returns must be
|
|
59
|
+
JSON-shaped: use object literals or `type` aliases. An `interface` type
|
|
60
|
+
fails assignability (no index signature), and tsx won't catch it. Your
|
|
61
|
+
typecheck will.
|
|
62
|
+
|
|
63
|
+
Throwing inside `execute` reports an error result to the model
|
|
64
|
+
(`isError: true`). The turn and the server keep running.
|
|
65
|
+
|
|
66
|
+
## Define an agent tool
|
|
67
|
+
|
|
68
|
+
Set `execution: "agent"` and the tool materializes as a shell script
|
|
69
|
+
that runs where the Cursor agent runs: the local harness workspace or
|
|
70
|
+
the cloud VM. The script receives JSON arguments on stdin and prints its
|
|
71
|
+
result on stdout. This is the only tool flavor available to
|
|
72
|
+
`runtime: "cloud"` agents.
|
|
73
|
+
|
|
74
|
+
```ts
|
|
75
|
+
import { defineTool } from "@cursor/july/tools";
|
|
76
|
+
import { z } from "zod";
|
|
77
|
+
|
|
78
|
+
export default defineTool({
|
|
79
|
+
description: "Echo a message from the agent workspace.",
|
|
80
|
+
execution: "agent",
|
|
81
|
+
inputSchema: z.object({ message: z.string() }),
|
|
82
|
+
script: `#!/usr/bin/env bash
|
|
83
|
+
set -euo pipefail
|
|
84
|
+
message=$(python3 -c 'import json,sys; print(json.load(sys.stdin)["message"])')
|
|
85
|
+
printf '%s\\n' "$message"
|
|
86
|
+
`,
|
|
87
|
+
});
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
On the local runtime, scripts land under `.agentkit/tools/` in the
|
|
91
|
+
session workspace with a catalog in `AGENTS.md`. On cloud, the catalog
|
|
92
|
+
and script bodies travel on the first prompt.
|
|
93
|
+
|
|
94
|
+
## Gate a tool on human approval
|
|
95
|
+
|
|
96
|
+
A server tool can require a person to sign off before it runs. Set
|
|
97
|
+
`needsApproval` to `true`, or to a predicate over the validated input:
|
|
98
|
+
|
|
99
|
+
```ts
|
|
100
|
+
export default defineTool({
|
|
101
|
+
description: "Promote a verified build to an environment.",
|
|
102
|
+
needsApproval: true, // or: (input) => input.environment === "production"
|
|
103
|
+
inputSchema: z.object({
|
|
104
|
+
service: z.string(),
|
|
105
|
+
buildId: z.string(),
|
|
106
|
+
environment: z.string(),
|
|
107
|
+
}),
|
|
108
|
+
async execute({ service, buildId, environment }) {
|
|
109
|
+
return { promoted: true, service, buildId, environment };
|
|
110
|
+
},
|
|
111
|
+
});
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
The call parks, the turn stays running, and the stream emits
|
|
115
|
+
`action.approval_requested` until someone resolves it from the
|
|
116
|
+
playground, `POST /v1/session/:id/approvals/:callId`, or Slack
|
|
117
|
+
Approve/Deny cards. Approvals exist for server tools on the local
|
|
118
|
+
runtime only, and parked calls don't survive a host restart. The full
|
|
119
|
+
lifecycle is in [Human-in-the-loop](../guides/human-in-the-loop.md).
|
|
120
|
+
|
|
121
|
+
## Call a tool without a model turn
|
|
122
|
+
|
|
123
|
+
Server tools can be called deterministically. You pick the tool and the
|
|
124
|
+
input. Validation and execution behave exactly as they would for a
|
|
125
|
+
model-initiated call, and no Cursor API key is needed.
|
|
126
|
+
|
|
127
|
+
Over HTTP, with the same auth chain as the session API:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
curl -X POST http://127.0.0.1:3000/<slug>/v1/tools/inspect_pr \
|
|
131
|
+
-H 'content-type: application/json' \
|
|
132
|
+
-d '{"input":{"prUrl":"https://github.com/acme/checkout/pull/42"}}'
|
|
133
|
+
# {"ok":true,"toolName":"inspect_pr","callId":"tool_inspect_pr_…",
|
|
134
|
+
# "isError":false,"result":{…},"durationMs":12}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
From the CLI, which starts an ephemeral server unless `--url` targets
|
|
138
|
+
a running one:
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
agentkit call inspect_pr --dir . \
|
|
142
|
+
--input '{"prUrl":"https://github.com/acme/checkout/pull/42"}'
|
|
143
|
+
agentkit call inspect_pr \
|
|
144
|
+
--url http://127.0.0.1:3000/<slug> \
|
|
145
|
+
--input '{"prUrl":"https://github.com/acme/checkout/pull/42"}'
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Programmatically, `callTool(toolName, input, options?)` is available on
|
|
149
|
+
the serve handle, on channel route handlers and `onStart` args, and on
|
|
150
|
+
schedule `run` handlers, so a channel can mix deterministic calls with
|
|
151
|
+
model turns, fetching PR metadata deterministically and then `send()`ing
|
|
152
|
+
the review prompt:
|
|
153
|
+
|
|
154
|
+
```ts
|
|
155
|
+
const outcome = await handle.callTool("inspect_pr", {
|
|
156
|
+
prUrl: "https://github.com/acme/checkout/pull/42",
|
|
157
|
+
});
|
|
158
|
+
// { toolName, callId, isError, result, durationMs }
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
By default the call runs against an ephemeral scratch workspace under
|
|
162
|
+
`<stateRoot>/tool-calls/<callId>`, materialized like a session workspace
|
|
163
|
+
and removed when the call returns. Pass a `sessionId` (a body field over
|
|
164
|
+
HTTP, `--session` on the CLI, `options.sessionId` programmatically) to
|
|
165
|
+
run inside an existing session instead: the tool sees that session's
|
|
166
|
+
workspace, and the call is recorded on the session's event stream under
|
|
167
|
+
a per-call `turnId`, visible in the playground and trajectories like
|
|
168
|
+
any model-initiated call. Session-bound calls serialize with model
|
|
169
|
+
turns and return `409 session_busy` while a turn runs.
|
|
170
|
+
|
|
171
|
+
The error semantics match the model path. Unknown tools are rejected
|
|
172
|
+
with the available names, agent-execution tools cannot be called on the
|
|
173
|
+
host (`400`), schema-invalid input is a `400` before the tool body runs
|
|
174
|
+
(Zod validates; plain JSON Schema passes through unvalidated), and a
|
|
175
|
+
tool body that throws reports `isError: true` in the same envelope the
|
|
176
|
+
model would see.
|
|
177
|
+
|
|
178
|
+
## Design habits
|
|
179
|
+
|
|
180
|
+
Keep one decision per tool. Small tools with crisp descriptions beat
|
|
181
|
+
multi-purpose tools with mode flags. The model chooses better and evals
|
|
182
|
+
gate cleaner.
|
|
183
|
+
|
|
184
|
+
Put deterministic policy in tool code, not model judgment. A PR-approval
|
|
185
|
+
tool should re-read the live PR inside the tool before acting, so a
|
|
186
|
+
spoofed payload can't steer it.
|
|
187
|
+
|
|
188
|
+
Test tools with `call` before blaming prompts. If the tool's output is
|
|
189
|
+
wrong, no instruction change fixes it.
|
|
190
|
+
|
|
191
|
+
And gate side effects: `needsApproval` for the calls that need a
|
|
192
|
+
person's sign-off, and dry-run defaults flipped by an env var for
|
|
193
|
+
anything destructive.
|
|
194
|
+
|
|
195
|
+
## What's next
|
|
196
|
+
|
|
197
|
+
Continue with these pages:
|
|
198
|
+
|
|
199
|
+
- [Human-in-the-loop](../guides/human-in-the-loop.md): the approval
|
|
200
|
+
lifecycle in full
|
|
201
|
+
- [MCP connections](./connections.md): tools that come from MCP servers
|
|
202
|
+
instead
|
|
203
|
+
- [Evals](../evals.md): gating tool decisions with `calledTool`
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Scaffold an agent with Cursor"
|
|
3
|
+
description: "Use the bundled create-agent skill to plan, build, and verify a new agent."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Scaffold an agent with Cursor
|
|
7
|
+
|
|
8
|
+
Turn an idea into a verified agent while Cursor guides you through each
|
|
9
|
+
decision.
|
|
10
|
+
|
|
11
|
+
## What does the create-agent skill do?
|
|
12
|
+
|
|
13
|
+
The bundled
|
|
14
|
+
[`create-agent` skill](../skills/create-agent/SKILL.md) turns your goal
|
|
15
|
+
into a small working project. Have Cursor read that file and follow it
|
|
16
|
+
(monorepo path: `packages/agent-serve/skills/create-agent/SKILL.md`).
|
|
17
|
+
|
|
18
|
+
Cursor will:
|
|
19
|
+
|
|
20
|
+
- Ask only for choices missing from your prompt
|
|
21
|
+
- Recommend defaults based on what you want to build
|
|
22
|
+
- Show you the plan and file tree before writing files
|
|
23
|
+
- Create the agent after you confirm the plan
|
|
24
|
+
- Run structural checks, a real turn, and a smoke eval
|
|
25
|
+
|
|
26
|
+
Use this skill for a new agent. Use
|
|
27
|
+
[`hillclimb`](./hillclimbing.md) (`skills/hillclimb/SKILL.md`) when an
|
|
28
|
+
existing agent works but needs better results.
|
|
29
|
+
|
|
30
|
+
## How do I start a guided scaffold?
|
|
31
|
+
|
|
32
|
+
Describe the outcome and any constraints you already know:
|
|
33
|
+
|
|
34
|
+
> Build a local weather agent for the playground. Give it one tool for
|
|
35
|
+
> current conditions and add a smoke eval. Guide me through the remaining
|
|
36
|
+
> decisions.
|
|
37
|
+
|
|
38
|
+
More detail means fewer questions. Include a channel, runtime, model, or
|
|
39
|
+
required integration when those choices are fixed.
|
|
40
|
+
|
|
41
|
+
## Which choices will Cursor ask me to make?
|
|
42
|
+
|
|
43
|
+
Cursor fills gaps in two short rounds:
|
|
44
|
+
|
|
45
|
+
- **Identity:** purpose, project name, and location
|
|
46
|
+
- **Runtime:** local or cloud
|
|
47
|
+
- **Model:** the default model or another Cursor model
|
|
48
|
+
- **Channels:** playground and HTTP, Slack, GitHub, a webhook, or a
|
|
49
|
+
schedule
|
|
50
|
+
- **MCP connections:** remote or local MCP servers
|
|
51
|
+
- **Capabilities:** tools, skills, subagents, hooks, seed files,
|
|
52
|
+
approvals, and evals
|
|
53
|
+
|
|
54
|
+
Questions adapt to your goal. A playground chat agent won't get
|
|
55
|
+
cloud-repository questions. A local agent won't get cloud setup
|
|
56
|
+
questions.
|
|
57
|
+
|
|
58
|
+
## What happens before Cursor writes files?
|
|
59
|
+
|
|
60
|
+
Cursor shows one plan with the choices it made and the folders it will
|
|
61
|
+
create. Choose **Scaffold it** to continue or **Adjust something** to
|
|
62
|
+
change the plan.
|
|
63
|
+
|
|
64
|
+
No files change before you approve this step.
|
|
65
|
+
|
|
66
|
+
## What will Cursor create?
|
|
67
|
+
|
|
68
|
+
A first version usually includes:
|
|
69
|
+
|
|
70
|
+
- `agent/agent.ts` for the model and runtime
|
|
71
|
+
- `agent/instructions.md` for the always-on prompt
|
|
72
|
+
- One or two tools under `agent/tools/`
|
|
73
|
+
- Any channels or MCP connections you selected
|
|
74
|
+
- `evals/evals.config.ts` and one smoke eval
|
|
75
|
+
|
|
76
|
+
Cursor keeps the first version small. Side-effecting server tools use
|
|
77
|
+
`needsApproval`. Deterministic setup, such as fetching a pull request,
|
|
78
|
+
stays in host code instead of model instructions.
|
|
79
|
+
|
|
80
|
+
See [Project layout](./reference/project-layout.md) for every supported
|
|
81
|
+
folder.
|
|
82
|
+
|
|
83
|
+
## How does Cursor verify the scaffold?
|
|
84
|
+
|
|
85
|
+
Cursor checks the project in this order:
|
|
86
|
+
|
|
87
|
+
1. Run `agentkit validate` and fix every error
|
|
88
|
+
2. Inspect the discovered surface with `info --json`
|
|
89
|
+
3. Call each server tool directly with validated sample input
|
|
90
|
+
4. Run one end-to-end model turn
|
|
91
|
+
5. Run the smoke eval
|
|
92
|
+
6. Run the project's TypeScript check
|
|
93
|
+
|
|
94
|
+
Validation, discovery, direct server-tool calls, and server startup work
|
|
95
|
+
without a Cursor credential. Model turns and evals need
|
|
96
|
+
`CURSOR_API_KEY` or a saved `agentkit login`.
|
|
97
|
+
|
|
98
|
+
## What happens after the first agent works?
|
|
99
|
+
|
|
100
|
+
Choose one to three fixed inputs, define what should improve, and name
|
|
101
|
+
what must stay unchanged. Then have Cursor follow
|
|
102
|
+
[`skills/hillclimb/SKILL.md`](../skills/hillclimb/SKILL.md).
|
|
103
|
+
|
|
104
|
+
The hillclimb skill measures a baseline, changes one lever, runs the same
|
|
105
|
+
inputs again, and adds an eval for each improvement you keep.
|
|
106
|
+
|
|
107
|
+
## Related
|
|
108
|
+
|
|
109
|
+
- [Build your first weather agent](./quickstart.md)
|
|
110
|
+
- [Building agents with agents](./building-with-agents.md)
|
|
111
|
+
- [Evals](./evals.md)
|
|
112
|
+
- [Hillclimbing](./hillclimbing.md)
|
|
113
|
+
- [Project layout](./reference/project-layout.md)
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Fix common agent problems"
|
|
3
|
+
description: "Match what you see to a cause, then read a session trace when you need more detail."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Fix common agent problems
|
|
7
|
+
|
|
8
|
+
Start with four checks, in order:
|
|
9
|
+
|
|
10
|
+
1. Project discovery: `agentkit validate --dir .`
|
|
11
|
+
2. Whether the serve process is running
|
|
12
|
+
3. What the playground or HTTP API shows
|
|
13
|
+
4. The session event stream (trace)
|
|
14
|
+
|
|
15
|
+
Match your symptom below. Keep the commands as `agentkit`; see
|
|
16
|
+
[Run the CLI](./README.md#run-the-cli) if you still need an alias.
|
|
17
|
+
|
|
18
|
+
## What if serve or the playground looks wrong?
|
|
19
|
+
|
|
20
|
+
| What you see | What to do |
|
|
21
|
+
| --- | --- |
|
|
22
|
+
| `serve` won't start | Run `agentkit validate --dir .` and fix the reported errors. |
|
|
23
|
+
| Playground is blank or says there are no agents | The UI needs a running `serve` process. Building the playground assets alone is not enough. |
|
|
24
|
+
| Edits to the playground don't show up | Use `serve --dev` and open the printed playground HMR URL (often port `5273`), not only the static `:3000` URL. |
|
|
25
|
+
| Sessions exist on disk but the playground list is empty | The list shows sessions for the authenticated caller. In `--dev` on loopback the list is wider. Otherwise open `/<slug>/playground?sessionId=ses_…` or inspect `sessions/` under your state root. |
|
|
26
|
+
| Port 3000 or 5273 is already in use | Find and stop the listener (`lsof -iTCP:3000 -sTCP:LISTEN` on macOS/Linux), and any leftover Vite or webhook-forwarder processes. |
|
|
27
|
+
|
|
28
|
+
## What if a model turn goes wrong?
|
|
29
|
+
|
|
30
|
+
| What you see | What to do |
|
|
31
|
+
| --- | --- |
|
|
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 `agentkit login`, or set `CURSOR_API_KEY`. Discovery, `info`, `call`, and serve bring-up work without a key; model turns need one. |
|
|
34
|
+
| Replies quote rules or `AGENTS.md` from outside your agent project | The session workspace inherited parent-folder config. Point `defineAgent({ local: { cwd } })` outside that tree, or set `--state-root` to a clean directory (for example under `/tmp`). |
|
|
35
|
+
| Server tools, skills, or workspace seed files never appear | The agent runtime is `cloud`. Those features apply on the local runtime. `validate` warns when this combination is present. |
|
|
36
|
+
| `validate` and `run` succeed, but typecheck fails in CI | The CLI runs TypeScript with type-stripping only. Keep tool `execute` return types as object literals or `type` aliases, not `interface` types. |
|
|
37
|
+
| Login works, but turns are rejected when using custom API hosts | Point login and model traffic at the same host (`CURSOR_API_BASE_URL` and `CURSOR_BACKEND_URL`). A key from one host is rejected by the other. |
|
|
38
|
+
|
|
39
|
+
## What if the HTTP API returns an error?
|
|
40
|
+
|
|
41
|
+
| What you see | What to do |
|
|
42
|
+
| --- | --- |
|
|
43
|
+
| `409` on a follow-up message | Refresh the `continuationToken` (it rotates on each accepted follow-up), wait if the session is busy, or confirm the session is a chat session (task and schedule sessions are not followable). |
|
|
44
|
+
| `409 session_busy` on `call --session` | Wait for the model turn to finish, or omit `--session` for a one-off call. |
|
|
45
|
+
| `403` on stream or follow-up | Use the same auth identity that created the session. Off localhost, pass `--bearer-token` and send it on every request. |
|
|
46
|
+
| Works on localhost; blocked through a tunnel or LAN | Default auth allows only direct loopback callers. Share the host with `--bearer-token <secret>` (or authored `bearerAuth`). Use `--allow-anonymous` only on a trusted private network. |
|
|
47
|
+
| A channel route fails to compile with a schema type error | `GET` routes need a Zod `querySchema`. `POST` / `PUT` / `PATCH` need a Zod `bodySchema`. Use `z.object({})` or `z.unknown()` for open shapes. |
|
|
48
|
+
|
|
49
|
+
## What if GitHub webhooks misbehave?
|
|
50
|
+
|
|
51
|
+
| What you see | What to do |
|
|
52
|
+
| --- | --- |
|
|
53
|
+
| `github forward` returns 401 on every delivery, but the hook was created | Clear `GITHUB_TOKEN` and `GH_TOKEN` for that command. The forwarder uses your `gh` CLI login: `GITHUB_TOKEN= GH_TOKEN= agentkit github forward …` |
|
|
54
|
+
| `Hook already exists` when starting a forwarder | GitHub allows one forwarder per repo. Run a single `github forward --dir <parent>` and stop stale forwarders. |
|
|
55
|
+
| Deliveries rejected outside `--dev` | Set `GITHUB_WEBHOOK_SECRET` on the server and on the signer. Without a secret, the channel stays loopback-only. |
|
|
56
|
+
| You lack repo admin and can't forward | Use `agentkit github replay <pr-url>`. It needs pull access only and posts signed test payloads. |
|
|
57
|
+
|
|
58
|
+
## What if Slack stays quiet?
|
|
59
|
+
|
|
60
|
+
| What you see | What to do |
|
|
61
|
+
| --- | --- |
|
|
62
|
+
| Logs show `channel idle … missing credentials` | Expected when tokens are missing. Set `<PREFIX>_SLACK_BOT_TOKEN` and `<PREFIX>_SLACK_APP_TOKEN` per agent, then run `agentkit slack doctor --prefix <PREFIX>`. |
|
|
63
|
+
| The bot ignores ordinary channel posts | Default engagement is mentions and DMs only. Enable `engagement.channelPosts` with an allowlist, and subscribe the app to `message.channels` / `message.groups`. |
|
|
64
|
+
| Approve / Deny buttons do nothing | Re-import a Slack app manifest with interactivity enabled. Channels that post approval cards need `toolApprovals: true` (and `interactivity: true` when you compose events by hand). |
|
|
65
|
+
|
|
66
|
+
## What if schedules, reminders, or approvals stall?
|
|
67
|
+
|
|
68
|
+
| What you see | What to do |
|
|
69
|
+
| --- | --- |
|
|
70
|
+
| A schedule or reminder never fires under `--dev` | Dev mode does not auto-fire. Trigger with `POST /<slug>/v1/dev/schedules/<id>` or `POST /<slug>/v1/dev/reminders/<id>` (list reminders at `GET /v1/dev/reminders`). |
|
|
71
|
+
| A pending tool approval disappeared after restart | Parked approvals do not survive host restart. They resolve as interrupted. Run the turn again. |
|
|
72
|
+
| A reminder is disarmed after restart (`handler_lost_on_restart`) | Handler-form reminders live in memory. Re-arm them from the code that created them, or use prompt-form reminders. |
|
|
73
|
+
|
|
74
|
+
## How do I read a session trace?
|
|
75
|
+
|
|
76
|
+
Look at `actions.requested` / `action.result` pairs for the tool
|
|
77
|
+
trajectory. Count calls by tool name before blaming latency. Separate
|
|
78
|
+
host-side work (channel `callTool`, preparation) from tools the model
|
|
79
|
+
chose.
|
|
80
|
+
|
|
81
|
+
`turn.failed` with `"turn interrupted"` means a follow-up or stop ended
|
|
82
|
+
the turn on purpose.
|
|
83
|
+
|
|
84
|
+
If the model reads outside the session workspace, the prepared files
|
|
85
|
+
don't match what the instructions expect. Fix the layout. See
|
|
86
|
+
[Hillclimbing](./hillclimbing.md).
|
|
87
|
+
|
|
88
|
+
`agentkit trajectory --events <file>` summarizes any saved NDJSON
|
|
89
|
+
stream. The playground **Open trace** control does the same visually.
|
|
90
|
+
|
|
91
|
+
## What's next
|
|
92
|
+
|
|
93
|
+
- [Concepts](./concepts.md): the model behind these symptoms
|
|
94
|
+
- [Hillclimbing](./hillclimbing.md): when the agent runs but underperforms
|
|
95
|
+
- [Deployment](./deployment.md): auth and state on shared hosts
|
package/package.json
ADDED
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@cursor/july",
|
|
3
|
+
"version": "0.1.1",
|
|
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
|
+
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/cursor/cursor"
|
|
9
|
+
},
|
|
10
|
+
"homepage": "https://cursor.com",
|
|
11
|
+
"type": "module",
|
|
12
|
+
"main": "dist/index.js",
|
|
13
|
+
"module": "dist/index.js",
|
|
14
|
+
"types": "./dist/index.d.ts",
|
|
15
|
+
"bin": {
|
|
16
|
+
"agentkit": "./dist/bin/agent-serve.js",
|
|
17
|
+
"agent-serve": "./dist/bin/agent-serve.js"
|
|
18
|
+
},
|
|
19
|
+
"publishConfig": {
|
|
20
|
+
"access": "public"
|
|
21
|
+
},
|
|
22
|
+
"files": [
|
|
23
|
+
"dist/**/*",
|
|
24
|
+
"src/**/*",
|
|
25
|
+
"!src/**/*.test.ts",
|
|
26
|
+
"skills/**/*",
|
|
27
|
+
"!skills/operate/**",
|
|
28
|
+
"docs/**/*.md",
|
|
29
|
+
"!docs/.cursor/**",
|
|
30
|
+
"package.json",
|
|
31
|
+
"LICENSE.md",
|
|
32
|
+
"README.md",
|
|
33
|
+
"AGENTS.md"
|
|
34
|
+
],
|
|
35
|
+
"exports": {
|
|
36
|
+
".": {
|
|
37
|
+
"anysphere-source": "./src/index.ts",
|
|
38
|
+
"bun": "./src/index.ts",
|
|
39
|
+
"types": "./dist/index.d.ts",
|
|
40
|
+
"import": "./dist/index.js",
|
|
41
|
+
"default": "./dist/index.js"
|
|
42
|
+
},
|
|
43
|
+
"./tools": {
|
|
44
|
+
"anysphere-source": "./src/tools.ts",
|
|
45
|
+
"bun": "./src/tools.ts",
|
|
46
|
+
"types": "./dist/tools.d.ts",
|
|
47
|
+
"import": "./dist/tools.js",
|
|
48
|
+
"default": "./dist/tools.js"
|
|
49
|
+
},
|
|
50
|
+
"./channels": {
|
|
51
|
+
"anysphere-source": "./src/channels.ts",
|
|
52
|
+
"bun": "./src/channels.ts",
|
|
53
|
+
"types": "./dist/channels.d.ts",
|
|
54
|
+
"import": "./dist/channels.js",
|
|
55
|
+
"default": "./dist/channels.js"
|
|
56
|
+
},
|
|
57
|
+
"./channels/slack": {
|
|
58
|
+
"anysphere-source": "./src/channels/slack/index.ts",
|
|
59
|
+
"bun": "./src/channels/slack/index.ts",
|
|
60
|
+
"types": "./dist/channels/slack/index.d.ts",
|
|
61
|
+
"import": "./dist/channels/slack/index.js",
|
|
62
|
+
"default": "./dist/channels/slack/index.js"
|
|
63
|
+
},
|
|
64
|
+
"./channels/github": {
|
|
65
|
+
"anysphere-source": "./src/channels/github/index.ts",
|
|
66
|
+
"bun": "./src/channels/github/index.ts",
|
|
67
|
+
"types": "./dist/channels/github/index.d.ts",
|
|
68
|
+
"import": "./dist/channels/github/index.js",
|
|
69
|
+
"default": "./dist/channels/github/index.js"
|
|
70
|
+
},
|
|
71
|
+
"./skills": {
|
|
72
|
+
"anysphere-source": "./src/skills.ts",
|
|
73
|
+
"bun": "./src/skills.ts",
|
|
74
|
+
"types": "./dist/skills.d.ts",
|
|
75
|
+
"import": "./dist/skills.js",
|
|
76
|
+
"default": "./dist/skills.js"
|
|
77
|
+
},
|
|
78
|
+
"./schedules": {
|
|
79
|
+
"anysphere-source": "./src/schedules.ts",
|
|
80
|
+
"bun": "./src/schedules.ts",
|
|
81
|
+
"types": "./dist/schedules.d.ts",
|
|
82
|
+
"import": "./dist/schedules.js",
|
|
83
|
+
"default": "./dist/schedules.js"
|
|
84
|
+
},
|
|
85
|
+
"./reminders": {
|
|
86
|
+
"anysphere-source": "./src/reminders.ts",
|
|
87
|
+
"bun": "./src/reminders.ts",
|
|
88
|
+
"types": "./dist/reminders.d.ts",
|
|
89
|
+
"import": "./dist/reminders.js",
|
|
90
|
+
"default": "./dist/reminders.js"
|
|
91
|
+
},
|
|
92
|
+
"./connections": {
|
|
93
|
+
"anysphere-source": "./src/connections.ts",
|
|
94
|
+
"bun": "./src/connections.ts",
|
|
95
|
+
"types": "./dist/connections.d.ts",
|
|
96
|
+
"import": "./dist/connections.js",
|
|
97
|
+
"default": "./dist/connections.js"
|
|
98
|
+
},
|
|
99
|
+
"./hooks": {
|
|
100
|
+
"anysphere-source": "./src/hooks.ts",
|
|
101
|
+
"bun": "./src/hooks.ts",
|
|
102
|
+
"types": "./dist/hooks.d.ts",
|
|
103
|
+
"import": "./dist/hooks.js",
|
|
104
|
+
"default": "./dist/hooks.js"
|
|
105
|
+
},
|
|
106
|
+
"./evals": {
|
|
107
|
+
"anysphere-source": "./src/evals.ts",
|
|
108
|
+
"bun": "./src/evals.ts",
|
|
109
|
+
"types": "./dist/evals.d.ts",
|
|
110
|
+
"import": "./dist/evals.js",
|
|
111
|
+
"default": "./dist/evals.js"
|
|
112
|
+
},
|
|
113
|
+
"./ab": {
|
|
114
|
+
"anysphere-source": "./src/ab.ts",
|
|
115
|
+
"bun": "./src/ab.ts",
|
|
116
|
+
"types": "./dist/ab.d.ts",
|
|
117
|
+
"import": "./dist/ab.js",
|
|
118
|
+
"default": "./dist/ab.js"
|
|
119
|
+
},
|
|
120
|
+
"./package.json": {
|
|
121
|
+
"anysphere-source": "./package.json",
|
|
122
|
+
"bun": "./package.json",
|
|
123
|
+
"types": "./package.json",
|
|
124
|
+
"import": "./package.json",
|
|
125
|
+
"default": "./package.json"
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
"scripts": {
|
|
129
|
+
"build": "tsgo -p tsconfig.build.json && pnpm run build:playground && pnpm run docs:build",
|
|
130
|
+
"build:playground": "vite build --config playground/vite.config.ts",
|
|
131
|
+
"dev:playground": "vite --config playground/vite.config.ts",
|
|
132
|
+
"check": "biome check src && tsgo --noEmit && tsgo --noEmit -p playground/tsconfig.json",
|
|
133
|
+
"docs:dev": "vitepress dev docs",
|
|
134
|
+
"docs:build": "vitepress build docs",
|
|
135
|
+
"docs:preview": "vitepress preview docs",
|
|
136
|
+
"fix": "biome check --write --unsafe src",
|
|
137
|
+
"test": "vitest run --passWithNoTests",
|
|
138
|
+
"type-check": "tsgo --noEmit && tsgo --noEmit -p playground/tsconfig.json",
|
|
139
|
+
"build-dev": "echo noop",
|
|
140
|
+
"build-types": "tsgo -p tsconfig.build.json --emitDeclarationOnly",
|
|
141
|
+
"verify-publish": "node scripts/verify-publish-artifacts.mjs",
|
|
142
|
+
"smoke-publish": "node scripts/smoke-publish-artifact.mjs",
|
|
143
|
+
"publish-check": "pnpm run build && pnpm run verify-publish && pnpm run smoke-publish"
|
|
144
|
+
},
|
|
145
|
+
"engines": {
|
|
146
|
+
"node": ">=22.13"
|
|
147
|
+
},
|
|
148
|
+
"dependencies": {
|
|
149
|
+
"@cursor/sdk": "1.0.23",
|
|
150
|
+
"@modelcontextprotocol/sdk": "1.25.1",
|
|
151
|
+
"@octokit/auth-app": "^7.2.0",
|
|
152
|
+
"@octokit/rest": "^21.1.1",
|
|
153
|
+
"@slack/socket-mode": "^2.0.7",
|
|
154
|
+
"@slack/web-api": "^7.18.0",
|
|
155
|
+
"croner": "^8.0.1",
|
|
156
|
+
"javascript-time-ago": "^2.6.4",
|
|
157
|
+
"ms": "^2.1.3",
|
|
158
|
+
"tsx": "^4.0.0",
|
|
159
|
+
"zod": "^3.25.0",
|
|
160
|
+
"zod-to-json-schema": "^3.24.5"
|
|
161
|
+
},
|
|
162
|
+
"devDependencies": {
|
|
163
|
+
"@anysphere/ui": "workspace:*",
|
|
164
|
+
"@base-ui/react": "1.4.0",
|
|
165
|
+
"@stylexjs/stylex": "0.18.3",
|
|
166
|
+
"@stylexswc/rs-compiler": "^0.16.4",
|
|
167
|
+
"@tanstack/react-virtual": "3.13.23",
|
|
168
|
+
"@types/ms": "^2.1.0",
|
|
169
|
+
"@types/node": "catalog:",
|
|
170
|
+
"@types/react": "^19.0.0",
|
|
171
|
+
"@types/react-dom": "^19.0.0",
|
|
172
|
+
"@typescript/native-preview": "7.0.0-dev.20260701.1",
|
|
173
|
+
"@vitejs/plugin-react": "^5.1.2",
|
|
174
|
+
"pretty-ms": "^9.2.0",
|
|
175
|
+
"react": "^19.2.1",
|
|
176
|
+
"react-dom": "^19.2.1",
|
|
177
|
+
"react-markdown": "^10.1.0",
|
|
178
|
+
"remark-gfm": "^4.0.1",
|
|
179
|
+
"typescript": "catalog:",
|
|
180
|
+
"vite": "^7.3.0",
|
|
181
|
+
"vitepress": "1.6.4",
|
|
182
|
+
"vitest": "^4.0.18",
|
|
183
|
+
"zustand": "^5.0.9"
|
|
184
|
+
}
|
|
185
|
+
}
|