@cursor/july 0.1.18 → 0.1.20

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.
Files changed (74) hide show
  1. package/AGENTS.md +10 -0
  2. package/dist/bin/agent-serve.js +20 -3
  3. package/dist/docs/404.html +1 -1
  4. package/dist/docs/ab.html +2 -2
  5. package/dist/docs/assets/{app.BR5EdVSq.js → app.T-5ImnM3.js} +1 -1
  6. package/dist/docs/assets/chunks/@localSearchIndexroot.CvejISXF.js +1 -0
  7. package/dist/docs/assets/chunks/{VPLocalSearchBox.CNCzfUKC.js → VPLocalSearchBox.OMGMWH6H.js} +1 -1
  8. package/dist/docs/assets/chunks/{theme.CwKvMSWv.js → theme.DLg4yB4D.js} +2 -2
  9. package/dist/docs/building-with-agents.html +2 -2
  10. package/dist/docs/concepts.html +2 -2
  11. package/dist/docs/deployment.html +2 -2
  12. package/dist/docs/evals.html +2 -2
  13. package/dist/docs/example-agents/approval-buddy.html +2 -2
  14. package/dist/docs/example-agents/benny.html +2 -2
  15. package/dist/docs/example-agents/bugbot.html +2 -2
  16. package/dist/docs/example-agents/codebase-wiki.html +2 -2
  17. package/dist/docs/example-agents/codeowners-review.html +2 -2
  18. package/dist/docs/example-agents/concierge.html +2 -2
  19. package/dist/docs/example-agents/fsd.html +2 -2
  20. package/dist/docs/example-agents/index.html +2 -2
  21. package/dist/docs/example-agents/knowledge-base.html +2 -2
  22. package/dist/docs/example-agents/oncall.html +2 -2
  23. package/dist/docs/example-agents/security-reviewer.html +2 -2
  24. package/dist/docs/example-agents/slack-agent.html +2 -2
  25. package/dist/docs/example-agents/weather-agent.html +2 -2
  26. package/dist/docs/guides/agent-to-agent.html +2 -2
  27. package/dist/docs/guides/cloud-runtime.html +2 -2
  28. package/dist/docs/guides/github.html +2 -2
  29. package/dist/docs/guides/human-in-the-loop.html +2 -2
  30. package/dist/docs/guides/mcp-oauth.html +2 -2
  31. package/dist/docs/guides/slack.html +2 -2
  32. package/dist/docs/guides/webhooks.html +2 -2
  33. package/dist/docs/hillclimbing.html +2 -2
  34. package/dist/docs/index.html +2 -2
  35. package/dist/docs/quickstart.html +2 -2
  36. package/dist/docs/reference/agent-config.html +2 -2
  37. package/dist/docs/reference/channels.html +2 -2
  38. package/dist/docs/reference/cli.html +2 -2
  39. package/dist/docs/reference/connections.html +2 -2
  40. package/dist/docs/reference/hooks.html +2 -2
  41. package/dist/docs/reference/http-api.html +2 -2
  42. package/dist/docs/reference/instructions.html +2 -2
  43. package/dist/docs/reference/playground.html +2 -2
  44. package/dist/docs/reference/project-layout.html +2 -2
  45. package/dist/docs/reference/prompt.html +2 -2
  46. package/dist/docs/reference/schedules.html +2 -2
  47. package/dist/docs/reference/sessions.html +2 -2
  48. package/dist/docs/reference/skills.html +2 -2
  49. package/dist/docs/reference/subagents.html +2 -2
  50. package/dist/docs/reference/tools.html +2 -2
  51. package/dist/docs/scaffolding-agents.html +2 -2
  52. package/dist/docs/storage.html +2 -2
  53. package/dist/docs/troubleshooting.html +2 -2
  54. package/dist/internal/cli-skills.d.ts +19 -0
  55. package/dist/internal/cli-skills.d.ts.map +1 -0
  56. package/dist/internal/cli-skills.js +72 -0
  57. package/dist/internal/install-cursor-skills.d.ts +46 -4
  58. package/dist/internal/install-cursor-skills.d.ts.map +1 -1
  59. package/dist/internal/install-cursor-skills.js +117 -49
  60. package/dist/playground/assets/index-CidizGZv.css +1 -0
  61. package/dist/playground/assets/index-CuiAKZaP.js +85 -0
  62. package/dist/playground/index.html +2 -2
  63. package/package.json +2 -2
  64. package/skills/create-agent/SKILL.md +36 -4
  65. package/skills/evals/SKILL.md +3 -0
  66. package/skills/framework-map/SKILL.md +14 -0
  67. package/skills/github/SKILL.md +6 -1
  68. package/skills/hillclimb/SKILL.md +28 -7
  69. package/src/bin/agent-serve.ts +21 -3
  70. package/src/internal/cli-skills.ts +95 -0
  71. package/src/internal/install-cursor-skills.ts +168 -60
  72. package/dist/docs/assets/chunks/@localSearchIndexroot.BOzkeUi8.js +0 -1
  73. package/dist/playground/assets/index-DRjS5klQ.js +0 -85
  74. package/dist/playground/assets/index-TCDs-UhZ.css +0 -1
package/AGENTS.md CHANGED
@@ -303,6 +303,16 @@ Fixtures still work for offline replay: `POST` a saved payload with an
303
303
  part of a code change. Docs are written intentionally, on explicit request
304
304
  only — never as a side effect of a feature or fix. If a change makes docs
305
305
  stale, say so in the PR description instead of editing them unprompted.
306
+ - Grow an agent's deterministic path by default. Host code owns side-effect
307
+ gates and actuation, dedupe of external writes, auth, evidence seeding,
308
+ and hard API caps; formatting, summarizing, classification, and reply
309
+ composition stay with the model under an output contract in
310
+ `instructions.md` / skills (prose in `.md`, never TS string builders).
311
+ Speculative caches (prefetch, fingerprint dedupe, write coalescing) need
312
+ measured pressure first, and framework gaps (posting, chunking, retries)
313
+ get fixed or filed in the framework, not worked around in `agent/lib/`.
314
+ Budget + smells: `skills/create-agent/SKILL.md` § "The deterministic-path
315
+ budget".
306
316
  - Put durable `--state-root` inside a large monorepo if you care about
307
317
  ambient `AGENTS.md` / `.cursor` rules leaking into the agent workspace.
308
318
  Prefer `defineAgent({ local: { cwd } })` pointing outside the monorepo
@@ -66,6 +66,7 @@ Usage:
66
66
  ${CLI} call <tool> [--input <json>] [--dir <path> | --url <baseUrl> | --prod]
67
67
  [--session <id>] [--slug <slug>] [--team <id>]
68
68
  ${CLI} init [dir] [--json]
69
+ ${CLI} install-skills [--print] [--json]
69
70
  ${CLI} mcp --prod [--slug <slug>] [--team <id>] [--dir <path>]
70
71
  | --url <baseUrl> [--bearer-token <t>]
71
72
  ${CLI} mcp install [--name <serverName>] [--print] [--json]
@@ -145,6 +146,12 @@ Commands:
145
146
  run login when unsigned, then print next steps. --json is
146
147
  machine-readable and never blocks on login. No directory:
147
148
  print the setup guide.
149
+ install-skills
150
+ Install (or refresh) the agentkit skills for coding agents in
151
+ ~/.cursor/skills/agentkit and print where they landed. \`init\`
152
+ offers this once, interactively, and skips it when the prompt
153
+ goes unanswered; this command never asks. --print previews
154
+ without writing.
148
155
  mcp Serve this agent's MCP endpoint over stdio for MCP clients
149
156
  that spawn local servers (e.g. Cursor). Proxies
150
157
  newline-delimited JSON-RPC to <target>/v1/mcp. --prod resolves
@@ -263,6 +270,8 @@ Options:
263
270
  --once logs: print current progress / log buffer once and exit
264
271
  (default is to follow).
265
272
  --print playground: print the URL only; do not open a browser.
273
+ install-skills: list the skills and the install path
274
+ without writing them.
266
275
  --no-wait deploy/stop/eval: return right after the request is
267
276
  accepted instead of polling until a terminal status.
268
277
  For eval, prints the runId (deployment / --url only).
@@ -304,9 +313,10 @@ Options:
304
313
  --no-artifacts eval: do not write run artifacts.
305
314
  --skip-report eval: ignore reporters from evals.config.ts / eval files.
306
315
  --no-stream run/eval: silence live progress on stderr (JSON still prints).
307
- --json JSON output (init/info/chat/eval/logs/sessions/session/
308
- github; run defaults to JSON). logs: NDJSON progress/log
309
- events. session: trajectory JSON (not raw events).
316
+ --json JSON output (init/install-skills/info/chat/eval/logs/
317
+ sessions/session/github; run defaults to JSON). logs:
318
+ NDJSON progress/log events. session: trajectory JSON
319
+ (not raw events).
310
320
  --no-color chat: force plain output.
311
321
  --cursor-events serve: pull SCM webhook events from /v0/scm-events. The
312
322
  stream is read as your Cursor user, so serve requires
@@ -520,6 +530,13 @@ function main(argv) {
520
530
  json: values.json,
521
531
  });
522
532
  }
533
+ case "install-skills": {
534
+ const { cmdInstallSkills } = yield import("../internal/cli-skills.js");
535
+ return cmdInstallSkills({
536
+ json: values.json,
537
+ print: values.print,
538
+ });
539
+ }
523
540
  case "mcp": {
524
541
  const { cmdMcp } = yield import("../internal/cli-mcp.js");
525
542
  const mcpSub = positionals[0];
@@ -9,7 +9,7 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.BR5EdVSq.js"></script>
12
+ <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
14
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
15
15
  <script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
package/dist/docs/ab.html CHANGED
@@ -9,9 +9,9 @@
9
9
  <link rel="preload stylesheet" href="/docs/assets/style.Bj-IXa5W.css" as="style">
10
10
  <link rel="preload stylesheet" href="/docs/vp-icons.css" as="style">
11
11
 
12
- <script type="module" src="/docs/assets/app.BR5EdVSq.js"></script>
12
+ <script type="module" src="/docs/assets/app.T-5ImnM3.js"></script>
13
13
  <link rel="preload" href="/docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
14
- <link rel="modulepreload" href="/docs/assets/chunks/theme.CwKvMSWv.js">
14
+ <link rel="modulepreload" href="/docs/assets/chunks/theme.DLg4yB4D.js">
15
15
  <link rel="modulepreload" href="/docs/assets/chunks/framework.CAZyNGu9.js">
16
16
  <link rel="modulepreload" href="/docs/assets/ab.md.BMCZ6Hd7.lean.js">
17
17
  <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
@@ -1 +1 @@
1
- import{t as p}from"./chunks/theme.CwKvMSWv.js";import{R as s,a2 as i,a3 as u,a4 as c,a5 as l,a6 as f,a7 as d,a8 as m,a9 as h,aa as g,ab as A,d as v,u as y,v as C,s as P,ac as b,ad as w,ae as R,af as E}from"./chunks/framework.CAZyNGu9.js";function r(e){if(e.extends){const a=r(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const n=r(p),S=v({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=y();return C(()=>{P(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&b(),w(),R(),n.setup&&n.setup(),()=>E(n.Layout)}});async function T(){globalThis.__VITEPRESS__=!0;const e=_(),a=D();a.provide(u,e);const t=c(e.route);return a.provide(l,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),n.enhanceApp&&await n.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function D(){return A(S)}function _(){let e=s;return h(a=>{let t=g(a),o=null;return t&&(e&&(t=t.replace(/\.js$/,".lean.js")),o=import(t)),s&&(e=!1),o},n.NotFound)}s&&T().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{T as createApp};
1
+ import{t as p}from"./chunks/theme.DLg4yB4D.js";import{R as s,a2 as i,a3 as u,a4 as c,a5 as l,a6 as f,a7 as d,a8 as m,a9 as h,aa as g,ab as A,d as v,u as y,v as C,s as P,ac as b,ad as w,ae as R,af as E}from"./chunks/framework.CAZyNGu9.js";function r(e){if(e.extends){const a=r(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const n=r(p),S=v({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=y();return C(()=>{P(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&b(),w(),R(),n.setup&&n.setup(),()=>E(n.Layout)}});async function T(){globalThis.__VITEPRESS__=!0;const e=_(),a=D();a.provide(u,e);const t=c(e.route);return a.provide(l,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),n.enhanceApp&&await n.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function D(){return A(S)}function _(){let e=s;return h(a=>{let t=g(a),o=null;return t&&(e&&(t=t.replace(/\.js$/,".lean.js")),o=import(t)),s&&(e=!1),o},n.NotFound)}s&&T().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{T as createApp};