@cursor/july 0.1.2 → 0.1.4
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 +16 -5
- package/README.md +8 -9
- package/dist/bin/agent-serve.d.ts +3 -1
- package/dist/bin/agent-serve.d.ts.map +1 -1
- package/dist/bin/agent-serve.js +416 -155
- package/dist/channels/slack/log.d.ts +1 -1
- package/dist/channels/slack/log.d.ts.map +1 -1
- package/dist/channels/slack/log.js +4 -5
- package/dist/channels/slack/setup.js +1 -1
- package/dist/channels/slack/socket-mode.d.ts.map +1 -1
- package/dist/channels/slack/socket-mode.js +10 -9
- package/dist/docs/404.html +2 -2
- package/dist/docs/ab.html +3 -3
- package/dist/docs/assets/{app.Oje4vhlk.js → app.DF-Yx4OP.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.0XrheBv2.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.H5XZ2zCB.js → VPLocalSearchBox.DSeJSudL.js} +1 -1
- package/dist/docs/assets/chunks/{theme.CTR_TuaE.js → theme.DZVLTXOC.js} +2 -2
- package/dist/docs/assets/{index.md.m81y7TY7.js → index.md.Cylk70gg.js} +1 -1
- package/dist/docs/assets/{quickstart.md.CfU8_uTC.js → quickstart.md.BU6Iwi_9.js} +18 -6
- package/dist/docs/assets/{reference_cli.md.DA730zCu.js → reference_cli.md.Bv6pOxcF.js} +11 -6
- package/dist/docs/assets/{reference_cli.md.DA730zCu.lean.js → reference_cli.md.Bv6pOxcF.lean.js} +1 -1
- package/dist/docs/building-with-agents.html +3 -3
- package/dist/docs/concepts.html +3 -3
- package/dist/docs/deployment.html +3 -3
- package/dist/docs/evals.html +3 -3
- package/dist/docs/guides/agent-to-agent.html +3 -3
- package/dist/docs/guides/cloud-runtime.html +3 -3
- package/dist/docs/guides/github.html +3 -3
- package/dist/docs/guides/human-in-the-loop.html +3 -3
- package/dist/docs/guides/slack.html +3 -3
- package/dist/docs/guides/webhooks.html +3 -3
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +3 -3
- package/dist/docs/index.html +5 -5
- package/dist/docs/quickstart.html +22 -10
- package/dist/docs/reference/agent-config.html +3 -3
- package/dist/docs/reference/channels.html +3 -3
- package/dist/docs/reference/cli.html +14 -9
- package/dist/docs/reference/connections.html +3 -3
- package/dist/docs/reference/hooks.html +3 -3
- package/dist/docs/reference/http-api.html +3 -3
- package/dist/docs/reference/instructions.html +3 -3
- package/dist/docs/reference/playground.html +3 -3
- package/dist/docs/reference/project-layout.html +3 -3
- package/dist/docs/reference/schedules.html +3 -3
- package/dist/docs/reference/sessions.html +3 -3
- package/dist/docs/reference/skills.html +3 -3
- package/dist/docs/reference/subagents.html +3 -3
- package/dist/docs/reference/tools.html +3 -3
- package/dist/docs/scaffolding-agents.html +3 -3
- package/dist/docs/storage.html +3 -3
- package/dist/docs/troubleshooting.html +3 -3
- package/dist/internal/ab-collector.js +3 -3
- package/dist/internal/ab-fold.js +1 -1
- package/dist/internal/chat-client.d.ts +29 -3
- package/dist/internal/chat-client.d.ts.map +1 -1
- package/dist/internal/chat-client.js +180 -27
- package/dist/internal/cli-ax.d.ts +83 -2
- package/dist/internal/cli-ax.d.ts.map +1 -1
- package/dist/internal/cli-ax.js +626 -52
- package/dist/internal/cli-cursor.d.ts.map +1 -1
- package/dist/internal/cli-cursor.js +8 -36
- package/dist/internal/cli-deploy.d.ts +59 -3
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +316 -38
- package/dist/internal/cli-github.js +13 -13
- package/dist/internal/cursor/account-mcp.js +3 -3
- package/dist/internal/cursor/backend-client.js +1 -1
- package/dist/internal/cursor/credentials.d.ts +14 -3
- package/dist/internal/cursor/credentials.d.ts.map +1 -1
- package/dist/internal/cursor/credentials.js +21 -6
- package/dist/internal/cursor/github-credentials.js +3 -3
- package/dist/internal/cursor-event-relay.js +1 -1
- package/dist/internal/cursor-relay-core.d.ts +1 -1
- package/dist/internal/cursor-relay-core.d.ts.map +1 -1
- package/dist/internal/cursor-relay-core.js +2 -1
- package/dist/internal/cursor-slack-relay.js +1 -1
- package/dist/internal/deploy-client.d.ts +9 -1
- package/dist/internal/deploy-client.d.ts.map +1 -1
- package/dist/internal/deploy-client.js +23 -3
- package/dist/internal/deploy-source.d.ts +35 -0
- package/dist/internal/deploy-source.d.ts.map +1 -0
- package/dist/internal/deploy-source.js +118 -0
- package/dist/internal/discovery.d.ts +11 -0
- package/dist/internal/discovery.d.ts.map +1 -1
- package/dist/internal/discovery.js +43 -14
- package/dist/internal/distribution.d.ts +7 -0
- package/dist/internal/distribution.d.ts.map +1 -1
- package/dist/internal/distribution.js +7 -0
- package/dist/internal/docs-site.js +3 -3
- package/dist/internal/eval-run-store.d.ts.map +1 -1
- package/dist/internal/eval-run-store.js +10 -9
- package/dist/internal/eval-runner.d.ts +2 -0
- package/dist/internal/eval-runner.d.ts.map +1 -1
- package/dist/internal/eval-runner.js +2 -0
- package/dist/internal/event-mapper.d.ts +54 -1
- package/dist/internal/event-mapper.d.ts.map +1 -1
- package/dist/internal/event-mapper.js +151 -41
- package/dist/internal/github-fanout.js +2 -2
- package/dist/internal/host-platforms.js +5 -5
- package/dist/internal/init-project.d.ts +88 -1
- package/dist/internal/init-project.d.ts.map +1 -1
- package/dist/internal/init-project.js +221 -31
- package/dist/internal/install-cursor-skills.d.ts +64 -0
- package/dist/internal/install-cursor-skills.d.ts.map +1 -0
- package/dist/internal/install-cursor-skills.js +274 -0
- package/dist/internal/logs-client.d.ts +60 -0
- package/dist/internal/logs-client.d.ts.map +1 -0
- package/dist/internal/logs-client.js +311 -0
- package/dist/internal/mcp-endpoint.d.ts.map +1 -1
- package/dist/internal/mcp-endpoint.js +1 -1
- package/dist/internal/open-browser.d.ts +5 -0
- package/dist/internal/open-browser.d.ts.map +1 -0
- package/dist/internal/open-browser.js +34 -0
- package/dist/internal/playground/toolchain.d.ts.map +1 -1
- package/dist/internal/playground/toolchain.js +19 -14
- package/dist/internal/playground-proxy.d.ts +69 -0
- package/dist/internal/playground-proxy.d.ts.map +1 -0
- package/dist/internal/playground-proxy.js +468 -0
- package/dist/internal/prompt-context.d.ts +35 -0
- package/dist/internal/prompt-context.d.ts.map +1 -0
- package/dist/internal/prompt-context.js +71 -0
- package/dist/internal/reminder-runner.d.ts.map +1 -1
- package/dist/internal/reminder-runner.js +11 -11
- package/dist/internal/request-headers.d.ts +11 -0
- package/dist/internal/request-headers.d.ts.map +1 -0
- package/dist/internal/request-headers.js +14 -0
- package/dist/internal/resolve-prod-target.d.ts +44 -0
- package/dist/internal/resolve-prod-target.d.ts.map +1 -0
- package/dist/internal/resolve-prod-target.js +134 -0
- package/dist/internal/resolved-connections.js +5 -5
- package/dist/internal/run-client.d.ts +2 -2
- package/dist/internal/run-client.d.ts.map +1 -1
- package/dist/internal/run-client.js +38 -23
- package/dist/internal/schedule-runner.js +1 -1
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +23 -17
- package/dist/internal/session-engine.d.ts +1 -1
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +34 -19
- package/dist/internal/sessions-client.d.ts +34 -0
- package/dist/internal/sessions-client.d.ts.map +1 -0
- package/dist/internal/sessions-client.js +193 -0
- package/dist/internal/storage-coordinator.js +6 -6
- package/dist/internal/stream-progress.d.ts.map +1 -1
- package/dist/internal/stream-progress.js +31 -3
- package/dist/internal/terminal-style.d.ts +22 -0
- package/dist/internal/terminal-style.d.ts.map +1 -0
- package/dist/internal/terminal-style.js +49 -0
- package/dist/internal/trajectory.d.ts +10 -5
- package/dist/internal/trajectory.d.ts.map +1 -1
- package/dist/internal/trajectory.js +82 -10
- package/dist/internal/update-check.d.ts +93 -0
- package/dist/internal/update-check.d.ts.map +1 -0
- package/dist/internal/update-check.js +431 -0
- package/dist/internal/workspace.d.ts +11 -0
- package/dist/internal/workspace.d.ts.map +1 -1
- package/dist/internal/workspace.js +38 -4
- package/dist/playground/assets/index-Ct_Usdm8.css +1 -0
- package/dist/playground/assets/index-Dsyb-Vaj.js +319 -0
- package/dist/playground/index.html +2 -2
- package/dist/types.d.ts +29 -2
- package/dist/types.d.ts.map +1 -1
- package/docs/README.md +0 -1
- package/docs/quickstart.md +22 -7
- package/docs/reference/cli.md +51 -3
- package/package.json +4 -1
- package/skills/ab/SKILL.md +8 -8
- package/skills/create-agent/SKILL.md +28 -22
- package/skills/debug/SKILL.md +11 -11
- package/skills/evals/SKILL.md +16 -16
- package/skills/framework-map/SKILL.md +6 -6
- package/skills/github/SKILL.md +13 -13
- package/skills/hillclimb/SKILL.md +10 -10
- package/skills/setup-slack/SKILL.md +14 -14
- package/src/bin/agent-serve.ts +451 -191
- package/src/channels/slack/log.ts +5 -5
- package/src/channels/slack/setup.ts +1 -1
- package/src/channels/slack/socket-mode.ts +11 -9
- package/src/internal/ab-collector.ts +3 -3
- package/src/internal/ab-fold.ts +1 -1
- package/src/internal/chat-client.ts +252 -37
- package/src/internal/cli-ax.ts +761 -72
- package/src/internal/cli-cursor.ts +14 -42
- package/src/internal/cli-deploy.ts +428 -49
- package/src/internal/cli-github.ts +13 -15
- package/src/internal/cursor/account-mcp.ts +3 -3
- package/src/internal/cursor/backend-client.ts +1 -1
- package/src/internal/cursor/credentials.ts +26 -7
- package/src/internal/cursor/github-credentials.ts +3 -3
- package/src/internal/cursor-event-relay.ts +1 -1
- package/src/internal/cursor-relay-core.ts +4 -2
- package/src/internal/cursor-slack-relay.ts +1 -1
- package/src/internal/deploy-client.ts +45 -4
- package/src/internal/deploy-source.ts +133 -0
- package/src/internal/discovery.ts +53 -16
- package/src/internal/distribution.ts +8 -0
- package/src/internal/docs-site.ts +3 -3
- package/src/internal/eval-run-store.ts +10 -11
- package/src/internal/eval-runner.ts +5 -0
- package/src/internal/event-mapper.ts +222 -42
- package/src/internal/github-fanout.ts +2 -2
- package/src/internal/host-platforms.ts +5 -5
- package/src/internal/init-project.ts +333 -51
- package/src/internal/install-cursor-skills.ts +327 -0
- package/src/internal/logs-client.ts +442 -0
- package/src/internal/mcp-endpoint.ts +1 -3
- package/src/internal/open-browser.ts +41 -0
- package/src/internal/playground/toolchain.ts +18 -16
- package/src/internal/playground-proxy.ts +576 -0
- package/src/internal/prompt-context.ts +95 -0
- package/src/internal/reminder-runner.ts +11 -17
- package/src/internal/request-headers.ts +23 -0
- package/src/internal/resolve-prod-target.ts +182 -0
- package/src/internal/resolved-connections.ts +5 -5
- package/src/internal/run-client.ts +39 -36
- package/src/internal/schedule-runner.ts +1 -1
- package/src/internal/server.ts +25 -16
- package/src/internal/session-engine.ts +35 -18
- package/src/internal/sessions-client.ts +216 -0
- package/src/internal/storage-coordinator.ts +6 -6
- package/src/internal/stream-progress.ts +36 -2
- package/src/internal/terminal-style.ts +74 -0
- package/src/internal/trajectory.ts +91 -13
- package/src/internal/update-check.ts +552 -0
- package/src/internal/workspace.ts +42 -4
- package/src/types.ts +45 -7
- package/dist/docs/assets/chunks/@localSearchIndexroot.zwQ9RCQ7.js +0 -1
- package/dist/playground/assets/index-B1Qc9h2u.css +0 -1
- package/dist/playground/assets/index-CpDYCj8W.js +0 -79
- /package/dist/docs/assets/{index.md.m81y7TY7.lean.js → index.md.Cylk70gg.lean.js} +0 -0
- /package/dist/docs/assets/{quickstart.md.CfU8_uTC.lean.js → quickstart.md.BU6Iwi_9.lean.js} +0 -0
|
@@ -17,6 +17,16 @@ export interface TrajectoryToolCall {
|
|
|
17
17
|
isError: boolean;
|
|
18
18
|
/** Present when the tool required human approval before execute. */
|
|
19
19
|
approvalDecision?: "approve" | "deny";
|
|
20
|
+
/** Parent task/subagent call id when this tool ran inside a subagent. */
|
|
21
|
+
parentCallId?: string;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface TrajectorySubagent {
|
|
25
|
+
callId: string;
|
|
26
|
+
name?: string;
|
|
27
|
+
description?: string;
|
|
28
|
+
/** Nested tool calls streamed while this subagent was running. */
|
|
29
|
+
toolCalls: TrajectoryToolCall[];
|
|
20
30
|
}
|
|
21
31
|
|
|
22
32
|
export interface TrajectoryTurn {
|
|
@@ -25,7 +35,7 @@ export interface TrajectoryTurn {
|
|
|
25
35
|
assistantText: string;
|
|
26
36
|
reasoningText?: string;
|
|
27
37
|
toolCalls: TrajectoryToolCall[];
|
|
28
|
-
subagents:
|
|
38
|
+
subagents: TrajectorySubagent[];
|
|
29
39
|
usage?: TurnUsage;
|
|
30
40
|
result?: string;
|
|
31
41
|
failed: boolean;
|
|
@@ -95,12 +105,20 @@ export function buildTrajectory(events: SessionEvent[]): Trajectory {
|
|
|
95
105
|
break;
|
|
96
106
|
}
|
|
97
107
|
case "message.completed": {
|
|
108
|
+
// Nested subagent text must not overwrite the parent turn reply.
|
|
109
|
+
if (event.data.parentCallId !== undefined) {
|
|
110
|
+
break;
|
|
111
|
+
}
|
|
98
112
|
if (event.turnId !== undefined && event.data.text !== "") {
|
|
99
113
|
ensureTurn(event.turnId).assistantText = event.data.text;
|
|
100
114
|
}
|
|
101
115
|
break;
|
|
102
116
|
}
|
|
103
117
|
case "reasoning.appended": {
|
|
118
|
+
// Nested subagent thinking stays off the parent turn transcript.
|
|
119
|
+
if (event.data.parentCallId !== undefined) {
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
104
122
|
if (event.turnId !== undefined) {
|
|
105
123
|
ensureTurn(event.turnId).reasoningText = event.data.text;
|
|
106
124
|
}
|
|
@@ -112,14 +130,28 @@ export function buildTrajectory(events: SessionEvent[]): Trajectory {
|
|
|
112
130
|
}
|
|
113
131
|
const turn = ensureTurn(event.turnId);
|
|
114
132
|
for (const call of event.data.calls) {
|
|
133
|
+
const parentCallId = call.parentCallId ?? event.data.parentCallId;
|
|
134
|
+
// Keep bare top-level `task` in toolCalls so evals like
|
|
135
|
+
// `calledTool("task")` / `notCalledTool("task")` keep working.
|
|
136
|
+
// Nested progress also appears under `subagents`.
|
|
115
137
|
const entry: TrajectoryToolCall = {
|
|
116
138
|
callId: call.callId,
|
|
117
139
|
toolName: call.toolName,
|
|
118
140
|
isError: false,
|
|
119
|
-
|
|
141
|
+
args: call.args,
|
|
142
|
+
parentCallId,
|
|
120
143
|
};
|
|
121
144
|
pendingCalls.set(call.callId, entry);
|
|
122
|
-
|
|
145
|
+
if (parentCallId !== undefined) {
|
|
146
|
+
let sub = turn.subagents.find((s) => s.callId === parentCallId);
|
|
147
|
+
if (sub === undefined) {
|
|
148
|
+
sub = { callId: parentCallId, toolCalls: [] };
|
|
149
|
+
turn.subagents.push(sub);
|
|
150
|
+
}
|
|
151
|
+
sub.toolCalls.push(entry);
|
|
152
|
+
} else {
|
|
153
|
+
turn.toolCalls.push(entry);
|
|
154
|
+
}
|
|
123
155
|
}
|
|
124
156
|
break;
|
|
125
157
|
}
|
|
@@ -141,24 +173,49 @@ export function buildTrajectory(events: SessionEvent[]): Trajectory {
|
|
|
141
173
|
pending.isError = event.data.isError;
|
|
142
174
|
pending.toolName = event.data.toolName;
|
|
143
175
|
} else if (event.turnId !== undefined) {
|
|
144
|
-
ensureTurn(event.turnId)
|
|
176
|
+
const turn = ensureTurn(event.turnId);
|
|
177
|
+
const entry: TrajectoryToolCall = {
|
|
145
178
|
callId: event.data.callId,
|
|
146
179
|
toolName: event.data.toolName,
|
|
147
180
|
output: event.data.output,
|
|
148
181
|
isError: event.data.isError,
|
|
149
|
-
|
|
182
|
+
parentCallId: event.data.parentCallId,
|
|
183
|
+
};
|
|
184
|
+
if (event.data.parentCallId !== undefined) {
|
|
185
|
+
let sub = turn.subagents.find(
|
|
186
|
+
(s) => s.callId === event.data.parentCallId
|
|
187
|
+
);
|
|
188
|
+
if (sub === undefined) {
|
|
189
|
+
sub = {
|
|
190
|
+
callId: event.data.parentCallId,
|
|
191
|
+
toolCalls: [],
|
|
192
|
+
};
|
|
193
|
+
turn.subagents.push(sub);
|
|
194
|
+
}
|
|
195
|
+
sub.toolCalls.push(entry);
|
|
196
|
+
} else {
|
|
197
|
+
turn.toolCalls.push(entry);
|
|
198
|
+
}
|
|
150
199
|
}
|
|
151
200
|
break;
|
|
152
201
|
}
|
|
153
202
|
case "subagent.called": {
|
|
154
203
|
if (event.turnId !== undefined) {
|
|
155
|
-
ensureTurn(event.turnId)
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
204
|
+
const turn = ensureTurn(event.turnId);
|
|
205
|
+
const existing = turn.subagents.find(
|
|
206
|
+
(s) => s.callId === event.data.callId
|
|
207
|
+
);
|
|
208
|
+
if (existing !== undefined) {
|
|
209
|
+
existing.name = event.data.name;
|
|
210
|
+
existing.description = event.data.description;
|
|
211
|
+
} else {
|
|
212
|
+
turn.subagents.push({
|
|
213
|
+
callId: event.data.callId,
|
|
214
|
+
name: event.data.name,
|
|
215
|
+
description: event.data.description,
|
|
216
|
+
toolCalls: [],
|
|
217
|
+
});
|
|
218
|
+
}
|
|
162
219
|
}
|
|
163
220
|
break;
|
|
164
221
|
}
|
|
@@ -202,7 +259,13 @@ export function buildTrajectory(events: SessionEvent[]): Trajectory {
|
|
|
202
259
|
|
|
203
260
|
const turns = turnOrder.map((id) => turnsById.get(id)!);
|
|
204
261
|
const turnsFailed = turns.filter((t) => t.failed).length;
|
|
205
|
-
const toolCallCount = turns.reduce(
|
|
262
|
+
const toolCallCount = turns.reduce(
|
|
263
|
+
(n, t) =>
|
|
264
|
+
n +
|
|
265
|
+
t.toolCalls.length +
|
|
266
|
+
t.subagents.reduce((m, s) => m + s.toolCalls.length, 0),
|
|
267
|
+
0
|
|
268
|
+
);
|
|
206
269
|
const lastGood = [...turns].reverse().find((t) => t.assistantText !== "");
|
|
207
270
|
return {
|
|
208
271
|
sessionId,
|
|
@@ -270,6 +333,21 @@ export function formatTrajectoryText(trajectory: Trajectory): string {
|
|
|
270
333
|
lines.push(` ${truncate(stringify(call.output), 160)}`);
|
|
271
334
|
}
|
|
272
335
|
}
|
|
336
|
+
for (const sub of turn.subagents) {
|
|
337
|
+
const label = sub.name ?? "subagent";
|
|
338
|
+
const detail =
|
|
339
|
+
sub.description !== undefined
|
|
340
|
+
? ` — ${truncate(sub.description, 80)}`
|
|
341
|
+
: "";
|
|
342
|
+
lines.push(` task ${label}${detail}`);
|
|
343
|
+
for (const call of sub.toolCalls) {
|
|
344
|
+
const mark = call.isError ? "✗" : "→";
|
|
345
|
+
lines.push(` ${mark} ${call.toolName}${formatArgs(call.args)}`);
|
|
346
|
+
if (call.output !== undefined) {
|
|
347
|
+
lines.push(` ${truncate(stringify(call.output), 160)}`);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
}
|
|
273
351
|
if (turn.assistantText.length > 0) {
|
|
274
352
|
lines.push(` agent: ${truncate(turn.assistantText, 400)}`);
|
|
275
353
|
}
|