@cursor/july 0.1.46 → 0.1.47

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 (67) hide show
  1. package/dist/docs/404.html +1 -1
  2. package/dist/docs/ab.html +2 -2
  3. package/dist/docs/assets/{app.C2NFTb-h.js → app.IEXEim5m.js} +1 -1
  4. package/dist/docs/assets/chunks/@localSearchIndexroot.D7w61u6Y.js +1 -0
  5. package/dist/docs/assets/chunks/{VPLocalSearchBox.o1_FJGip.js → VPLocalSearchBox.78s6nqsH.js} +1 -1
  6. package/dist/docs/assets/chunks/{theme.BcGduE7g.js → theme.DroGdz_Q.js} +2 -2
  7. package/dist/docs/building-with-agents.html +2 -2
  8. package/dist/docs/concepts.html +2 -2
  9. package/dist/docs/deployment.html +2 -2
  10. package/dist/docs/evals.html +2 -2
  11. package/dist/docs/example-agents/approval-buddy.html +2 -2
  12. package/dist/docs/example-agents/benny.html +2 -2
  13. package/dist/docs/example-agents/bugbot.html +2 -2
  14. package/dist/docs/example-agents/codebase-wiki.html +2 -2
  15. package/dist/docs/example-agents/codeowners-review.html +2 -2
  16. package/dist/docs/example-agents/concierge.html +2 -2
  17. package/dist/docs/example-agents/fsd.html +2 -2
  18. package/dist/docs/example-agents/index.html +2 -2
  19. package/dist/docs/example-agents/knowledge-base.html +2 -2
  20. package/dist/docs/example-agents/oncall.html +2 -2
  21. package/dist/docs/example-agents/security-reviewer.html +2 -2
  22. package/dist/docs/example-agents/slack-agent.html +2 -2
  23. package/dist/docs/example-agents/weather-agent.html +2 -2
  24. package/dist/docs/guides/agent-to-agent.html +2 -2
  25. package/dist/docs/guides/cloud-runtime.html +2 -2
  26. package/dist/docs/guides/github.html +2 -2
  27. package/dist/docs/guides/human-in-the-loop.html +2 -2
  28. package/dist/docs/guides/mcp-oauth.html +2 -2
  29. package/dist/docs/guides/opentelemetry.html +2 -2
  30. package/dist/docs/guides/slack.html +2 -2
  31. package/dist/docs/guides/webhooks.html +2 -2
  32. package/dist/docs/hillclimbing.html +2 -2
  33. package/dist/docs/index.html +2 -2
  34. package/dist/docs/quickstart.html +2 -2
  35. package/dist/docs/reference/agent-config.html +2 -2
  36. package/dist/docs/reference/artifacts.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/templates/triage.html +2 -2
  54. package/dist/docs/troubleshooting.html +2 -2
  55. package/dist/internal/sdk-runner.d.ts +21 -0
  56. package/dist/internal/sdk-runner.d.ts.map +1 -1
  57. package/dist/internal/sdk-runner.js +34 -1
  58. package/dist/internal/server.d.ts.map +1 -1
  59. package/dist/internal/server.js +7 -2
  60. package/dist/playground/assets/index-uFaeqVZS.css +1 -0
  61. package/dist/playground/index.html +2 -2
  62. package/package.json +1 -1
  63. package/src/internal/sdk-runner.ts +46 -1
  64. package/src/internal/server.ts +11 -1
  65. package/dist/docs/assets/chunks/@localSearchIndexroot.B-FxvuoI.js +0 -1
  66. package/dist/playground/assets/index-CSRYDAFw.css +0 -1
  67. /package/dist/playground/assets/{index-6wW6SAc4.js → index-BgUHfe3L.js} +0 -0
@@ -8,8 +8,8 @@
8
8
  />
9
9
  <meta name="viewport" content="width=device-width, initial-scale=1" />
10
10
  <title>agent-serve playground</title>
11
- <script type="module" crossorigin src="./assets/index-6wW6SAc4.js"></script>
12
- <link rel="stylesheet" crossorigin href="./assets/index-CSRYDAFw.css">
11
+ <script type="module" crossorigin src="./assets/index-BgUHfe3L.js"></script>
12
+ <link rel="stylesheet" crossorigin href="./assets/index-uFaeqVZS.css">
13
13
  </head>
14
14
  <body>
15
15
  <div id="root"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cursor/july",
3
- "version": "0.1.46",
3
+ "version": "0.1.47",
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": {
@@ -12,6 +12,7 @@ import {
12
12
  type AgentDefinition,
13
13
  type AgentOptions,
14
14
  type CloudAgentOptions,
15
+ Cursor,
15
16
  createAgentPlatform,
16
17
  JsonlLocalAgentStore,
17
18
  type LocalAgentStore,
@@ -75,6 +76,36 @@ type MaybePrewarmingPlatform = {
75
76
  ) => Promise<() => Promise<void>>;
76
77
  };
77
78
 
79
+ /**
80
+ * How long a non-`--dev` serve holds workspace scans (rules, skills,
81
+ * `AGENTS.md`, ignore files). The SDK default is 20s for an editor whose
82
+ * files move under it; agent-serve checkouts only change on deploy, so a
83
+ * missed mid-process edit is the right trade. `CURSOR_RIPWALK_CACHE_TTL_MS`
84
+ * still wins when set. `--dev` leaves the 20s default so skill edits show up.
85
+ */
86
+ export const SERVE_WORKSPACE_SCAN_CACHE_TTL_MS: number = 24 * 60 * 60 * 1000;
87
+
88
+ /**
89
+ * Resolve the SDK workspace-scan TTL for this serve. `undefined` means "do
90
+ * not call `Cursor.configure`" and leave the SDK at its 20s editor default.
91
+ */
92
+ export function resolveServeWorkspaceScanCacheTtlMs(args: {
93
+ dev: boolean;
94
+ env?: NodeJS.ProcessEnv;
95
+ }): number | undefined {
96
+ const raw = (args.env ?? process.env).CURSOR_RIPWALK_CACHE_TTL_MS?.trim();
97
+ if (raw !== undefined && raw !== "") {
98
+ const parsed = Number(raw);
99
+ if (Number.isFinite(parsed) && parsed > 0) {
100
+ return parsed;
101
+ }
102
+ }
103
+ if (args.dev) {
104
+ return undefined;
105
+ }
106
+ return SERVE_WORKSPACE_SCAN_CACHE_TTL_MS;
107
+ }
108
+
78
109
  export interface CursorSdkRunnerOptions {
79
110
  /** Cursor API key. Defaults to the `CURSOR_API_KEY` environment variable. */
80
111
  apiKey?: string;
@@ -86,6 +117,11 @@ export interface CursorSdkRunnerOptions {
86
117
  store?: LocalAgentStore;
87
118
  /** Diagnostics for degraded paths (resume-miss fallback). */
88
119
  logger?: (line: string) => void;
120
+ /**
121
+ * Hold workspace scans this long (ms). Applied via `Cursor.configure` so
122
+ * each new local executor reuses the walk. Omit to keep the SDK 20s default.
123
+ */
124
+ workspaceScanCacheTtlMs?: number;
89
125
  }
90
126
 
91
127
  /**
@@ -128,7 +164,16 @@ export class CursorSdkRunner implements AgentRunner {
128
164
  private readonly stores = new Map<string, Promise<LocalAgentStore>>();
129
165
  private readonly prewarmReleases: Array<() => Promise<void>> = [];
130
166
 
131
- constructor(private readonly options: CursorSdkRunnerOptions = {}) {}
167
+ constructor(private readonly options: CursorSdkRunnerOptions = {}) {
168
+ if (options.workspaceScanCacheTtlMs !== undefined) {
169
+ Cursor.configure({
170
+ local: { workspaceScanCacheTtlMs: options.workspaceScanCacheTtlMs },
171
+ });
172
+ this.log(
173
+ `[agent-sdk] workspace scan cache ttl=${options.workspaceScanCacheTtlMs}ms`
174
+ );
175
+ }
176
+ }
132
177
 
133
178
  async runTurn(request: RunnerTurnRequest): Promise<TurnOutcome> {
134
179
  let sawUpdate = false;
@@ -147,7 +147,11 @@ import {
147
147
  } from "./resolved-connections.js";
148
148
  import { Router } from "./router.js";
149
149
  import { ScheduleRunner, UnknownScheduleError } from "./schedule-runner.js";
150
- import { type AgentRunner, CursorSdkRunner } from "./sdk-runner.js";
150
+ import {
151
+ type AgentRunner,
152
+ CursorSdkRunner,
153
+ resolveServeWorkspaceScanCacheTtlMs,
154
+ } from "./sdk-runner.js";
151
155
  import {
152
156
  SessionAuthError,
153
157
  SessionBusyError,
@@ -364,11 +368,17 @@ export async function startServer(
364
368
  "[agent-sdk] warning: --allow-anonymous admits every HTTP caller as the same principal; use only on a trusted network (e.g. Tailscale) and prefer --bearer-token for shared hosts"
365
369
  );
366
370
  }
371
+ const workspaceScanCacheTtlMs = resolveServeWorkspaceScanCacheTtlMs({
372
+ dev,
373
+ });
367
374
  const runner =
368
375
  options.runner ??
369
376
  new CursorSdkRunner({
370
377
  ...(accountKey === undefined ? {} : { apiKey: accountKey.apiKey }),
371
378
  logger,
379
+ ...(workspaceScanCacheTtlMs === undefined
380
+ ? {}
381
+ : { workspaceScanCacheTtlMs }),
372
382
  });
373
383
 
374
384
  const router = new Router();