@cursor/july 0.1.11 → 0.1.14
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/dist/bin/agent-serve.js +32 -9
- package/dist/channels/github/api.d.ts.map +1 -1
- package/dist/channels/github/api.js +11 -4
- package/dist/channels/github/cursor-account.d.ts +21 -1
- package/dist/channels/github/cursor-account.d.ts.map +1 -1
- package/dist/channels/github/cursor-account.js +29 -1
- package/dist/channels/github/github-channel.d.ts.map +1 -1
- package/dist/channels/github/github-channel.js +1 -1
- package/dist/channels/github/instrument.d.ts +20 -0
- package/dist/channels/github/instrument.d.ts.map +1 -0
- package/dist/channels/slack/api.d.ts +9 -0
- package/dist/channels/slack/api.d.ts.map +1 -1
- package/dist/channels/slack/api.js +40 -7
- package/dist/channels/slack/eval-directive.d.ts +3 -0
- package/dist/channels/slack/eval-directive.d.ts.map +1 -1
- package/dist/channels/slack/eval-directive.js +20 -1
- package/dist/docs/404.html +2 -2
- package/dist/docs/ab.html +3 -3
- package/dist/docs/assets/{app.BcXUGca7.js → app.CKFFLL4Z.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.DGWkvXJc.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.CWur6XGZ.js → VPLocalSearchBox.BXk19JBN.js} +1 -1
- package/dist/docs/assets/chunks/{theme.BnvulOX2.js → theme.BXSPBMyn.js} +2 -2
- package/dist/docs/assets/{evals.md.DAgEc_hL.js → evals.md.DYOjkRCX.js} +10 -4
- package/dist/docs/assets/{evals.md.DAgEc_hL.lean.js → evals.md.DYOjkRCX.lean.js} +1 -1
- package/dist/docs/assets/{reference_cli.md.B74NrVzb.js → reference_cli.md.DnYfr5V2.js} +4 -1
- package/dist/docs/assets/{reference_http-api.md.Dx_nmDG6.js → reference_http-api.md.BncLd3PZ.js} +2 -2
- package/dist/docs/assets/{reference_http-api.md.Dx_nmDG6.lean.js → reference_http-api.md.BncLd3PZ.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 +13 -7
- package/dist/docs/example-agents/approval-buddy.html +3 -3
- package/dist/docs/example-agents/benny.html +3 -3
- package/dist/docs/example-agents/bugbot.html +3 -3
- package/dist/docs/example-agents/codebase-wiki.html +3 -3
- package/dist/docs/example-agents/codeowners-review.html +3 -3
- package/dist/docs/example-agents/concierge.html +3 -3
- package/dist/docs/example-agents/fsd.html +3 -3
- package/dist/docs/example-agents/index.html +3 -3
- package/dist/docs/example-agents/knowledge-base.html +3 -3
- package/dist/docs/example-agents/oncall.html +3 -3
- package/dist/docs/example-agents/security-reviewer.html +3 -3
- package/dist/docs/example-agents/slack-agent.html +3 -3
- package/dist/docs/example-agents/weather-agent.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/mcp-oauth.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 +3 -3
- package/dist/docs/quickstart.html +3 -3
- package/dist/docs/reference/agent-config.html +3 -3
- package/dist/docs/reference/channels.html +3 -3
- package/dist/docs/reference/cli.html +8 -5
- package/dist/docs/reference/connections.html +3 -3
- package/dist/docs/reference/hooks.html +3 -3
- package/dist/docs/reference/http-api.html +5 -5
- 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/prompt.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/evals.d.ts +41 -2
- package/dist/evals.d.ts.map +1 -1
- package/dist/evals.js +53 -16
- package/dist/internal/cli-ax.d.ts +4 -0
- package/dist/internal/cli-ax.d.ts.map +1 -1
- package/dist/internal/cli-ax.js +163 -33
- package/dist/internal/cli-deploy.d.ts +8 -0
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +92 -12
- package/dist/internal/cli-mcp-oauth.d.ts +14 -2
- package/dist/internal/cli-mcp-oauth.d.ts.map +1 -1
- package/dist/internal/cli-mcp-oauth.js +95 -2
- package/dist/internal/cursor/backend-client.d.ts +34 -0
- package/dist/internal/cursor/backend-client.d.ts.map +1 -1
- package/dist/internal/cursor/backend-client.js +73 -9
- package/dist/internal/cursor/credentials.d.ts +7 -1
- package/dist/internal/cursor/credentials.d.ts.map +1 -1
- package/dist/internal/cursor/credentials.js +9 -3
- package/dist/internal/cursor-account-mcp-auth.d.ts +55 -0
- package/dist/internal/cursor-account-mcp-auth.d.ts.map +1 -0
- package/dist/internal/cursor-account-mcp-auth.js +175 -0
- package/dist/internal/cursor-event-relay.d.ts +2 -0
- package/dist/internal/cursor-event-relay.d.ts.map +1 -1
- package/dist/internal/cursor-event-relay.js +3 -0
- package/dist/internal/deploy-client.d.ts +6 -0
- package/dist/internal/deploy-client.d.ts.map +1 -1
- package/dist/internal/deploy-client.js +13 -0
- package/dist/internal/eval-run-store.d.ts +15 -0
- package/dist/internal/eval-run-store.d.ts.map +1 -1
- package/dist/internal/eval-run-store.js +87 -8
- package/dist/internal/eval-runner.d.ts +12 -0
- package/dist/internal/eval-runner.d.ts.map +1 -1
- package/dist/internal/eval-runner.js +97 -22
- package/dist/internal/evals-client.d.ts +9 -1
- package/dist/internal/evals-client.d.ts.map +1 -1
- package/dist/internal/evals-client.js +43 -0
- package/dist/internal/http-channel.d.ts.map +1 -1
- package/dist/internal/http-channel.js +74 -7
- package/dist/internal/map-pool.d.ts +6 -1
- package/dist/internal/map-pool.d.ts.map +1 -1
- package/dist/internal/map-pool.js +8 -1
- package/dist/internal/mcp-host.d.ts +13 -0
- package/dist/internal/mcp-host.d.ts.map +1 -1
- package/dist/internal/mcp-host.js +68 -13
- package/dist/internal/run-client.d.ts +5 -1
- package/dist/internal/run-client.d.ts.map +1 -1
- package/dist/internal/run-client.js +26 -5
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +57 -4
- package/dist/internal/session-engine.d.ts +13 -0
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +49 -0
- package/dist/internal/storage-coordinator.d.ts +7 -0
- package/dist/internal/storage-coordinator.d.ts.map +1 -1
- package/dist/internal/storage-coordinator.js +29 -4
- package/dist/playground/assets/index-CuXb4j4V.css +1 -0
- package/dist/playground/assets/index-DeyYpOit.js +86 -0
- package/dist/playground/index.html +2 -2
- package/dist/types.d.ts +10 -0
- package/dist/types.d.ts.map +1 -1
- package/docs/evals.md +46 -11
- package/docs/reference/cli.md +3 -0
- package/docs/reference/http-api.md +2 -1
- package/package.json +1 -1
- package/src/bin/agent-serve.ts +38 -8
- package/src/channels/github/api.ts +12 -1
- package/src/channels/github/cursor-account.ts +51 -1
- package/src/channels/github/github-channel.ts +4 -1
- package/src/channels/slack/api.ts +57 -8
- package/src/channels/slack/eval-directive.ts +24 -1
- package/src/evals.ts +104 -25
- package/src/internal/cli-ax.ts +192 -16
- package/src/internal/cli-deploy.ts +140 -13
- package/src/internal/cli-mcp-oauth.ts +122 -3
- package/src/internal/cursor/backend-client.ts +104 -1
- package/src/internal/cursor/credentials.ts +10 -2
- package/src/internal/cursor-account-mcp-auth.ts +241 -0
- package/src/internal/cursor-event-relay.ts +5 -0
- package/src/internal/deploy-client.ts +16 -0
- package/src/internal/eval-run-store.ts +89 -6
- package/src/internal/eval-runner.ts +113 -18
- package/src/internal/evals-client.ts +81 -0
- package/src/internal/http-channel.ts +87 -6
- package/src/internal/map-pool.ts +8 -1
- package/src/internal/mcp-host.ts +74 -16
- package/src/internal/run-client.ts +32 -1
- package/src/internal/server.ts +69 -2
- package/src/internal/session-engine.ts +58 -0
- package/src/internal/storage-coordinator.ts +32 -6
- package/src/types.ts +10 -0
- package/dist/channels/slack/post-update-delivery.d.ts +0 -85
- package/dist/channels/slack/post-update-delivery.d.ts.map +0 -1
- package/dist/channels/slack/post-update-delivery.js +0 -318
- package/dist/docs/assets/chunks/@localSearchIndexroot.BIbvK8M1.js +0 -1
- package/dist/internal/corp-ca.d.ts +0 -9
- package/dist/internal/corp-ca.d.ts.map +0 -1
- package/dist/internal/corp-ca.js +0 -44
- package/dist/playground/assets/index-BIGLubwK.js +0 -86
- package/dist/playground/assets/index-C17ZQKDG.css +0 -1
- package/docs/.vitepress/cache/deps/package.json +0 -3
- /package/dist/docs/assets/{reference_cli.md.B74NrVzb.lean.js → reference_cli.md.DnYfr5V2.lean.js} +0 -0
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service-account connector authorization for
|
|
3
|
+
* `defineConnection({ cursorAccount: true })` on hosted deployments.
|
|
4
|
+
*
|
|
5
|
+
* Hosted engines authenticate as their deployment's dedicated service
|
|
6
|
+
* account, whose connector OAuth tokens live backend-side. This flow is the
|
|
7
|
+
* dashboard's Authenticate button as a CLI loop: probe the connectors via
|
|
8
|
+
* `CheckHttpMcpStatus` (which mints a complete OAuth `authUrl` per connector
|
|
9
|
+
* needing auth), open each URL for the human to grant, and poll until the
|
|
10
|
+
* backend reports the token stored. Nothing token-shaped ever touches this
|
|
11
|
+
* process — the cursor.com callback stores tokens against the service
|
|
12
|
+
* account. Used by `agentkit mcp oauth <connection>` and the post-deploy
|
|
13
|
+
* hook in `cli-deploy.ts`.
|
|
14
|
+
*/
|
|
15
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
16
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
17
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
18
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
19
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
20
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
21
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
import { LOG_PREFIX } from "./distribution.js";
|
|
25
|
+
import { openBrowser } from "./mcp-oauth.js";
|
|
26
|
+
const DEFAULT_POLL_INTERVAL_MS = 3000;
|
|
27
|
+
const DEFAULT_POLL_TIMEOUT_MS = 5 * 60 * 1000;
|
|
28
|
+
/** Same default the dashboard uses; MCP_OAUTH_REDIRECT_URI overrides for dev. */
|
|
29
|
+
export function mcpOauthRedirectUri() {
|
|
30
|
+
const override = process.env.MCP_OAUTH_REDIRECT_URI;
|
|
31
|
+
if (override !== undefined && override.trim() !== "") {
|
|
32
|
+
return override.trim();
|
|
33
|
+
}
|
|
34
|
+
return "https://www.cursor.com/agents/mcp/oauth/callback";
|
|
35
|
+
}
|
|
36
|
+
function sleepMs(ms) {
|
|
37
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Authorize the deployment service account for the connection's connectors.
|
|
41
|
+
* Already-authorized connectors are skipped; the rest get a browser OAuth
|
|
42
|
+
* each (sequentially), polled until the backend stores the token.
|
|
43
|
+
*/
|
|
44
|
+
export function authorizeCursorAccountConnectors(args) {
|
|
45
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
+
var _a, _b, _c, _d, _e, _f;
|
|
47
|
+
const { backendClient, teamId, serviceAccountId, connectionName, out, err } = args;
|
|
48
|
+
const open = (_a = args.openBrowserImpl) !== null && _a !== void 0 ? _a : openBrowser;
|
|
49
|
+
const sleep = (_b = args.sleep) !== null && _b !== void 0 ? _b : sleepMs;
|
|
50
|
+
const pollIntervalMs = (_c = args.pollIntervalMs) !== null && _c !== void 0 ? _c : DEFAULT_POLL_INTERVAL_MS;
|
|
51
|
+
const pollTimeoutMs = (_d = args.pollTimeoutMs) !== null && _d !== void 0 ? _d : DEFAULT_POLL_TIMEOUT_MS;
|
|
52
|
+
const redirectUri = mcpOauthRedirectUri();
|
|
53
|
+
// Team-scoped connectors only: the hosted bridge resolves the SA's team
|
|
54
|
+
// servers, so personal connectors can never apply to a deployment.
|
|
55
|
+
const available = (yield backendClient.getAvailableMcpServers({ teamId })).filter((server) => server.isTeamServer);
|
|
56
|
+
const selected = selectConnectors(available, args.servers);
|
|
57
|
+
for (const missing of selected.unmatched) {
|
|
58
|
+
err(`${LOG_PREFIX} Connection "${connectionName}" lists connector ${JSON.stringify(missing)}, but the team has no such connector (dashboard → MCP).\n`);
|
|
59
|
+
}
|
|
60
|
+
if (selected.servers.length === 0) {
|
|
61
|
+
err(`${LOG_PREFIX} No matching team connectors for connection "${connectionName}".\n`);
|
|
62
|
+
return { authorized: [], pending: [], errored: [] };
|
|
63
|
+
}
|
|
64
|
+
const nameById = new Map(selected.servers.map((server) => [server.id, server.name]));
|
|
65
|
+
const statuses = yield backendClient.checkHttpMcpStatus({
|
|
66
|
+
serverIds: selected.servers.map((server) => server.id),
|
|
67
|
+
oauthRedirectUri: redirectUri,
|
|
68
|
+
serviceAccountId,
|
|
69
|
+
});
|
|
70
|
+
const result = {
|
|
71
|
+
authorized: [],
|
|
72
|
+
pending: [],
|
|
73
|
+
errored: [],
|
|
74
|
+
};
|
|
75
|
+
for (const status of statuses) {
|
|
76
|
+
const name = (_e = nameById.get(status.id)) !== null && _e !== void 0 ? _e : `#${status.id}`;
|
|
77
|
+
if (!status.requiresAuth) {
|
|
78
|
+
if (status.error !== undefined && status.error !== "") {
|
|
79
|
+
err(`${LOG_PREFIX} ${name}: ${status.error}\n`);
|
|
80
|
+
result.errored.push({ name, error: status.error });
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
out(`${LOG_PREFIX} ${name}: already authorized ✓\n`);
|
|
84
|
+
result.authorized.push(name);
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
if (status.authUrl === undefined || status.authUrl === "") {
|
|
88
|
+
const error = (_f = status.error) !== null && _f !== void 0 ? _f : "no authorization URL was minted";
|
|
89
|
+
err(`${LOG_PREFIX} ${name}: ${error}\n`);
|
|
90
|
+
result.errored.push({ name, error });
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
if (!args.interactive) {
|
|
94
|
+
result.pending.push(name);
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
out(`${LOG_PREFIX} ${name}: authorization needed. You'll authorize ${name} as yourself; ` +
|
|
98
|
+
`anyone who can talk to this agent can act with that access.\n` +
|
|
99
|
+
`${LOG_PREFIX} Opening (or open manually):\n ${status.authUrl}\n`);
|
|
100
|
+
open(status.authUrl);
|
|
101
|
+
const authorized = yield pollUntilAuthorized({
|
|
102
|
+
backendClient,
|
|
103
|
+
serverId: status.id,
|
|
104
|
+
serviceAccountId,
|
|
105
|
+
redirectUri,
|
|
106
|
+
sleep,
|
|
107
|
+
pollIntervalMs,
|
|
108
|
+
pollTimeoutMs,
|
|
109
|
+
});
|
|
110
|
+
if (authorized) {
|
|
111
|
+
out(`${LOG_PREFIX} ${name}: authorized ✓\n`);
|
|
112
|
+
result.authorized.push(name);
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
err(`${LOG_PREFIX} ${name}: still waiting on authorization; giving up for now.\n`);
|
|
116
|
+
result.pending.push(name);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return result;
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
function selectConnectors(available, filter) {
|
|
123
|
+
if (filter === undefined || filter.length === 0) {
|
|
124
|
+
return { servers: available, unmatched: [] };
|
|
125
|
+
}
|
|
126
|
+
const servers = [];
|
|
127
|
+
const seen = new Set();
|
|
128
|
+
const unmatched = [];
|
|
129
|
+
for (const name of filter) {
|
|
130
|
+
const wanted = name.trim().toLowerCase();
|
|
131
|
+
const matches = available.filter((server) => { var _a; return server.name.toLowerCase() === wanted ||
|
|
132
|
+
((_a = server.serverIdentifier) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === wanted; });
|
|
133
|
+
if (matches.length === 0) {
|
|
134
|
+
unmatched.push(name);
|
|
135
|
+
continue;
|
|
136
|
+
}
|
|
137
|
+
for (const match of matches) {
|
|
138
|
+
if (!seen.has(match.id)) {
|
|
139
|
+
seen.add(match.id);
|
|
140
|
+
servers.push(match);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return { servers, unmatched };
|
|
145
|
+
}
|
|
146
|
+
function pollUntilAuthorized(args) {
|
|
147
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
148
|
+
const deadline = Date.now() + args.pollTimeoutMs;
|
|
149
|
+
// Each unauthorized probe is a full backend connect to the provider, so
|
|
150
|
+
// back off while the human works through the OAuth pages.
|
|
151
|
+
let intervalMs = args.pollIntervalMs;
|
|
152
|
+
const maxIntervalMs = Math.max(args.pollIntervalMs, 15000);
|
|
153
|
+
while (Date.now() < deadline) {
|
|
154
|
+
yield args.sleep(intervalMs);
|
|
155
|
+
intervalMs = Math.min(intervalMs * 1.5, maxIntervalMs);
|
|
156
|
+
let statuses;
|
|
157
|
+
try {
|
|
158
|
+
statuses = yield args.backendClient.checkHttpMcpStatus({
|
|
159
|
+
serverIds: [args.serverId],
|
|
160
|
+
oauthRedirectUri: args.redirectUri,
|
|
161
|
+
serviceAccountId: args.serviceAccountId,
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
catch (_a) {
|
|
165
|
+
// Transient probe errors; keep polling until the deadline.
|
|
166
|
+
continue;
|
|
167
|
+
}
|
|
168
|
+
const status = statuses.find((entry) => entry.id === args.serverId);
|
|
169
|
+
if (status !== undefined && !status.requiresAuth) {
|
|
170
|
+
return true;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return false;
|
|
174
|
+
});
|
|
175
|
+
}
|
|
@@ -18,6 +18,8 @@ export type CursorScmPullRequestMeta = {
|
|
|
18
18
|
title?: string;
|
|
19
19
|
body?: string | null;
|
|
20
20
|
draft?: boolean;
|
|
21
|
+
/** True when the PR was merged — required by closed+merged channel hooks. */
|
|
22
|
+
merged?: boolean;
|
|
21
23
|
authorLogin?: string;
|
|
22
24
|
headRef?: string;
|
|
23
25
|
headSha?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-event-relay.d.ts","sourceRoot":"","sources":["../../src/internal/cursor-event-relay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAGL,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,8EAA8E;AAC9E,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,mEAAmE;AACnE,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,WAAW,CAAC,EAAE,wBAAwB,CAAC;IACvC,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AASD,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,2CAA2C;IAC3C,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,kFAAkF;AAClF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAgBT;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,wBAAwB,CAAC;CACxC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"cursor-event-relay.d.ts","sourceRoot":"","sources":["../../src/internal/cursor-event-relay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAGL,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,8EAA8E;AAC9E,MAAM,MAAM,wBAAwB,GAAG;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,mEAAmE;AACnE,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,WAAW,CAAC,EAAE,wBAAwB,CAAC;IACvC,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AASD,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,2CAA2C;IAC3C,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,wDAAwD;IACxD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,kFAAkF;AAClF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,MAAM,CAgBT;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,wBAAwB,CAAC;CACxC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAuE1B;AAED;;;GAGG;AACH,qBAAa,gBAAgB;IAUf,OAAO,CAAC,QAAQ,CAAC,OAAO;IATpC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAkC;IACvD;;;;OAIG;IACH,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IAExD,YAA6B,OAAO,EAAE,uBAAuB,EAwD5D;IAED;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAatB,KAAK,IAAI,IAAI,CAEZ;IAEK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAE1B;CACF"}
|
|
@@ -79,6 +79,9 @@ export function scmMetadataToGitHubPayload(event) {
|
|
|
79
79
|
head: { ref: headRef, sha: headSha },
|
|
80
80
|
base: { ref: baseRef, sha: prMeta === null || prMeta === void 0 ? void 0 : prMeta.baseSha },
|
|
81
81
|
};
|
|
82
|
+
if ((prMeta === null || prMeta === void 0 ? void 0 : prMeta.merged) !== undefined) {
|
|
83
|
+
pullRequest.merged = prMeta.merged;
|
|
84
|
+
}
|
|
82
85
|
if ((prMeta === null || prMeta === void 0 ? void 0 : prMeta.authorLogin) !== undefined) {
|
|
83
86
|
pullRequest.user = { login: prMeta.authorLogin };
|
|
84
87
|
}
|
|
@@ -108,6 +108,12 @@ export interface EngineAccess {
|
|
|
108
108
|
export interface DeploymentDetail extends Deployment {
|
|
109
109
|
engineAccess?: EngineAccess | null;
|
|
110
110
|
}
|
|
111
|
+
/**
|
|
112
|
+
* The deployment's dedicated service-account id (`sa_…`), or undefined for
|
|
113
|
+
* legacy rows that predate service-account-backed deploys. Normalizes the
|
|
114
|
+
* wire shape (string in prod, number in old fixtures, null when unset).
|
|
115
|
+
*/
|
|
116
|
+
export declare function deploymentServiceAccountId(deployment: Pick<Deployment, "serviceAccountId">): string | undefined;
|
|
111
117
|
export interface StopAccepted {
|
|
112
118
|
id: number;
|
|
113
119
|
status: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-client.d.ts","sourceRoot":"","sources":["../../src/internal/deploy-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deploy-client.d.ts","sourceRoot":"","sources":["../../src/internal/deploy-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,6 +53,19 @@ export class DeployApiError extends Error {
|
|
|
53
53
|
this.name = "DeployApiError";
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* The deployment's dedicated service-account id (`sa_…`), or undefined for
|
|
58
|
+
* legacy rows that predate service-account-backed deploys. Normalizes the
|
|
59
|
+
* wire shape (string in prod, number in old fixtures, null when unset).
|
|
60
|
+
*/
|
|
61
|
+
export function deploymentServiceAccountId(deployment) {
|
|
62
|
+
const raw = deployment.serviceAccountId;
|
|
63
|
+
if (raw === null || raw === undefined) {
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
const id = String(raw).trim();
|
|
67
|
+
return id === "" ? undefined : id;
|
|
68
|
+
}
|
|
56
69
|
// All response schemas are `.passthrough()`: the backend keeps growing the
|
|
57
70
|
// deployment payload (serviceAccountId, egressAllowedDomains, secret
|
|
58
71
|
// metadata, ...) and unknown fields must flow through untouched — both so
|
|
@@ -42,6 +42,7 @@ export declare class EvalRunStore {
|
|
|
42
42
|
private readonly storage?;
|
|
43
43
|
private readonly runs;
|
|
44
44
|
private activeRunId;
|
|
45
|
+
private readonly abortByRunId;
|
|
45
46
|
private hydratePromise;
|
|
46
47
|
private hydrated;
|
|
47
48
|
/** Filled after listen — e.g. `http://127.0.0.1:3000/weather-agent`. */
|
|
@@ -72,6 +73,11 @@ export declare class EvalRunStore {
|
|
|
72
73
|
}>;
|
|
73
74
|
getActiveRunId(): string | undefined;
|
|
74
75
|
start(input?: StartEvalRunInput): Promise<EvalRunSnapshot>;
|
|
76
|
+
/**
|
|
77
|
+
* Cancel a running batch by Eval ID (`runId`). Stops starting new cases and
|
|
78
|
+
* aborts in-flight turns. Idempotent when already cancelled.
|
|
79
|
+
*/
|
|
80
|
+
cancel(runId: string): Promise<EvalRunSnapshot>;
|
|
75
81
|
private sortedRuns;
|
|
76
82
|
/**
|
|
77
83
|
* Hydrate playground eval history from the `defineStorage` evals table.
|
|
@@ -102,4 +108,13 @@ export declare class EvalRunConflictError extends Error {
|
|
|
102
108
|
export declare class EvalRunEmptyError extends Error {
|
|
103
109
|
constructor();
|
|
104
110
|
}
|
|
111
|
+
export declare class EvalRunUnknownError extends Error {
|
|
112
|
+
readonly runId: string;
|
|
113
|
+
constructor(runId: string);
|
|
114
|
+
}
|
|
115
|
+
export declare class EvalRunNotRunningError extends Error {
|
|
116
|
+
readonly runId: string;
|
|
117
|
+
readonly status: EvalRunSnapshot["status"];
|
|
118
|
+
constructor(runId: string, status: EvalRunSnapshot["status"]);
|
|
119
|
+
}
|
|
105
120
|
//# sourceMappingURL=eval-run-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eval-run-store.d.ts","sourceRoot":"","sources":["../../src/internal/eval-run-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAGL,KAAK,eAAe,EAErB,MAAM,aAAa,CAAC;AASrB,YAAY,EACV,eAAe,EACf,iBAAiB,IAAI,cAAc,EACnC,gBAAgB,EAChB,eAAe,GAChB,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI,CAAC;IACjC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,8DAA8D;IAC9D,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;
|
|
1
|
+
{"version":3,"file":"eval-run-store.d.ts","sourceRoot":"","sources":["../../src/internal/eval-run-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAGL,KAAK,eAAe,EAErB,MAAM,aAAa,CAAC;AASrB,YAAY,EACV,eAAe,EACf,iBAAiB,IAAI,cAAc,EACnC,gBAAgB,EAChB,eAAe,GAChB,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI,CAAC;IACjC,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,8DAA8D;IAC9D,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AASF,qBAAa,YAAY;IAUrB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAZ3B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsC;IAC3D,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsC;IACnE,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,QAAQ,CAAS;IACzB,wEAAwE;IACxE,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC,YACmB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI;IAC/C,oEAAoE;IACnD,OAAO,CAAC,EAAE,cAAc,GAAG,SAAS,EACnD;IAEE,IAAI,IAAI,OAAO,CAAC;QACpB,KAAK,EAAE,KAAK,CAAC;YACX,EAAE,EAAE,MAAM,CAAC;YACX,MAAM,EAAE,MAAM,CAAC;YACf,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;SACjB,CAAC,CAAC;QACH,MAAM,EAAE,cAAc,CAAC;KACxB,CAAC,CAcD;IAEK,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAG7D;IAED,+EAA+E;IACzE,QAAQ,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAG3C;IAED;;;;OAIG;IACG,kBAAkB,IAAI,OAAO,CAAC;QAClC,IAAI,EAAE,eAAe,EAAE,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CAOD;IAED,cAAc,IAAI,MAAM,GAAG,SAAS,CAEnC;IAEK,KAAK,CAAC,KAAK,GAAE,iBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC,CAgEnE;IAED;;;OAGG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAqBpD;IAED,OAAO,CAAC,UAAU;IAMlB;;;;;OAKG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAQ7B;YAEa,kBAAkB;IAkDhC,OAAO,CAAC,YAAY;IAepB,6EAA6E;IAC7E,OAAO,CAAC,OAAO;IAIf;;;;;;OAMG;IACH,KAAK,IAAI,IAAI,CAcZ;YAEa,OAAO;IAgHrB,OAAO,CAAC,eAAe;CA0CxB;AAyFD,qBAAa,oBAAqB,SAAQ,KAAK;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM;IAAxC,YAAqB,WAAW,EAAE,MAAM,EAGvC;CACF;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,cAGC;CACF;AAED,qBAAa,mBAAoB,SAAQ,KAAK;IAChC,QAAQ,CAAC,KAAK,EAAE,MAAM;IAAlC,YAAqB,KAAK,EAAE,MAAM,EAGjC;CACF;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IAE7C,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC;IAF5C,YACW,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,EAI3C;CACF"}
|
|
@@ -21,6 +21,8 @@ import { resolveEvalMaxPlaygroundRuns, } from "../evals.js";
|
|
|
21
21
|
import { discoverEvals, filterDiscoveredEvals, runDiscoveredEvals, } from "./eval-runner.js";
|
|
22
22
|
const INTERRUPTED_BATCH_ERROR = "Eval run interrupted (serve process exited before completion)";
|
|
23
23
|
const INTERRUPTED_CASE_ERROR = "Eval case interrupted (serve process exited before completion)";
|
|
24
|
+
const CANCELLED_BATCH_ERROR = "Eval run cancelled";
|
|
25
|
+
const CANCELLED_CASE_ERROR = "Eval case cancelled";
|
|
24
26
|
export class EvalRunStore {
|
|
25
27
|
constructor(projectRoot, logger,
|
|
26
28
|
/** `defineStorage` evals-table adapter; undefined ⇒ memory only. */
|
|
@@ -29,6 +31,7 @@ export class EvalRunStore {
|
|
|
29
31
|
this.logger = logger;
|
|
30
32
|
this.storage = storage;
|
|
31
33
|
this.runs = new Map();
|
|
34
|
+
this.abortByRunId = new Map();
|
|
32
35
|
this.hydrated = false;
|
|
33
36
|
}
|
|
34
37
|
list() {
|
|
@@ -109,15 +112,45 @@ export class EvalRunStore {
|
|
|
109
112
|
};
|
|
110
113
|
this.runs.set(runId, snapshot);
|
|
111
114
|
this.activeRunId = runId;
|
|
115
|
+
const abort = new AbortController();
|
|
116
|
+
this.abortByRunId.set(runId, abort);
|
|
112
117
|
this.pruneOldRuns(config);
|
|
113
118
|
this.persist(snapshot);
|
|
114
119
|
this.logger(`[agentkit] eval run ${runId}: starting ${cases.length} case(s)`);
|
|
115
|
-
void this.execute(runId, Object.assign(Object.assign(Object.assign({ baseUrl: loopbackUrl, evals: selected, config }, (input.bearerToken === undefined
|
|
120
|
+
void this.execute(runId, Object.assign(Object.assign(Object.assign({ baseUrl: loopbackUrl, evals: selected, config, signal: abort.signal }, (input.bearerToken === undefined
|
|
116
121
|
? {}
|
|
117
122
|
: { bearerToken: input.bearerToken })), (input.verbose === undefined ? {} : { verbose: input.verbose })), (input.timeoutMs === undefined ? {} : { timeoutMs: input.timeoutMs })));
|
|
118
123
|
return snapshot;
|
|
119
124
|
});
|
|
120
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* Cancel a running batch by Eval ID (`runId`). Stops starting new cases and
|
|
128
|
+
* aborts in-flight turns. Idempotent when already cancelled.
|
|
129
|
+
*/
|
|
130
|
+
cancel(runId) {
|
|
131
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
132
|
+
yield this.hydrate();
|
|
133
|
+
const run = this.runs.get(runId);
|
|
134
|
+
if (run === undefined) {
|
|
135
|
+
throw new EvalRunUnknownError(runId);
|
|
136
|
+
}
|
|
137
|
+
if (run.status === "cancelled") {
|
|
138
|
+
return run;
|
|
139
|
+
}
|
|
140
|
+
if (run.status !== "running") {
|
|
141
|
+
throw new EvalRunNotRunningError(runId, run.status);
|
|
142
|
+
}
|
|
143
|
+
const abort = this.abortByRunId.get(runId);
|
|
144
|
+
abort === null || abort === void 0 ? void 0 : abort.abort();
|
|
145
|
+
markCancelledRun(run);
|
|
146
|
+
this.persist(run);
|
|
147
|
+
if (this.activeRunId === runId) {
|
|
148
|
+
this.activeRunId = undefined;
|
|
149
|
+
}
|
|
150
|
+
this.logger(`[agentkit] eval run ${runId}: cancelled`);
|
|
151
|
+
return run;
|
|
152
|
+
});
|
|
153
|
+
}
|
|
121
154
|
sortedRuns() {
|
|
122
155
|
return [...this.runs.values()].sort((a, b) => b.startedAt.localeCompare(a.startedAt));
|
|
123
156
|
}
|
|
@@ -210,6 +243,7 @@ export class EvalRunStore {
|
|
|
210
243
|
* completion write) until the next hydrate repairs it.
|
|
211
244
|
*/
|
|
212
245
|
close() {
|
|
246
|
+
var _a;
|
|
213
247
|
const activeRunId = this.activeRunId;
|
|
214
248
|
if (activeRunId === undefined) {
|
|
215
249
|
return;
|
|
@@ -218,9 +252,11 @@ export class EvalRunStore {
|
|
|
218
252
|
if (run === undefined || run.status !== "running") {
|
|
219
253
|
return;
|
|
220
254
|
}
|
|
255
|
+
(_a = this.abortByRunId.get(activeRunId)) === null || _a === void 0 ? void 0 : _a.abort();
|
|
221
256
|
markInterruptedRun(run);
|
|
222
257
|
this.persist(run);
|
|
223
258
|
this.activeRunId = undefined;
|
|
259
|
+
this.abortByRunId.delete(activeRunId);
|
|
224
260
|
}
|
|
225
261
|
execute(runId, opts) {
|
|
226
262
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -228,11 +264,11 @@ export class EvalRunStore {
|
|
|
228
264
|
return;
|
|
229
265
|
}
|
|
230
266
|
try {
|
|
231
|
-
yield runDiscoveredEvals(Object.assign(Object.assign(Object.assign(Object.assign({ projectRoot: this.projectRoot, baseUrl: opts.baseUrl, discovered: { evals: opts.evals, config: opts.config } }, (opts.bearerToken === undefined
|
|
267
|
+
yield runDiscoveredEvals(Object.assign(Object.assign(Object.assign(Object.assign({ projectRoot: this.projectRoot, baseUrl: opts.baseUrl, discovered: { evals: opts.evals, config: opts.config }, signal: opts.signal }, (opts.bearerToken === undefined
|
|
232
268
|
? {}
|
|
233
269
|
: { bearerToken: opts.bearerToken })), (opts.verbose === undefined ? {} : { verbose: opts.verbose })), (opts.timeoutMs === undefined ? {} : { timeoutMs: opts.timeoutMs })), { onCaseStart: (id) => {
|
|
234
270
|
const run = this.runs.get(runId);
|
|
235
|
-
if (run === undefined) {
|
|
271
|
+
if (run === undefined || run.status === "cancelled") {
|
|
236
272
|
return;
|
|
237
273
|
}
|
|
238
274
|
const c = run.cases.find((x) => x.id === id);
|
|
@@ -276,7 +312,7 @@ export class EvalRunStore {
|
|
|
276
312
|
}
|
|
277
313
|
} }));
|
|
278
314
|
const run = this.runs.get(runId);
|
|
279
|
-
if (run === undefined) {
|
|
315
|
+
if (run === undefined || run.status === "cancelled") {
|
|
280
316
|
return;
|
|
281
317
|
}
|
|
282
318
|
run.status = "completed";
|
|
@@ -286,16 +322,24 @@ export class EvalRunStore {
|
|
|
286
322
|
}
|
|
287
323
|
catch (error) {
|
|
288
324
|
const run = this.runs.get(runId);
|
|
289
|
-
if (run === undefined) {
|
|
325
|
+
if (run === undefined || run.status === "cancelled") {
|
|
326
|
+
return;
|
|
327
|
+
}
|
|
328
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
329
|
+
if (opts.signal.aborted || message === "cancelled") {
|
|
330
|
+
markCancelledRun(run);
|
|
331
|
+
this.persist(run);
|
|
332
|
+
this.logger(`[agentkit] eval run ${runId}: cancelled`);
|
|
290
333
|
return;
|
|
291
334
|
}
|
|
292
335
|
run.status = "failed";
|
|
293
336
|
run.finishedAt = new Date().toISOString();
|
|
294
|
-
run.error =
|
|
337
|
+
run.error = message;
|
|
295
338
|
this.persist(run);
|
|
296
339
|
this.logger(`[agentkit] eval run ${runId}: failed — ${run.error}`);
|
|
297
340
|
}
|
|
298
341
|
finally {
|
|
342
|
+
this.abortByRunId.delete(runId);
|
|
299
343
|
if (this.activeRunId === runId) {
|
|
300
344
|
this.activeRunId = undefined;
|
|
301
345
|
}
|
|
@@ -311,6 +355,7 @@ export class EvalRunStore {
|
|
|
311
355
|
if (c === undefined) {
|
|
312
356
|
return;
|
|
313
357
|
}
|
|
358
|
+
const alreadyCounted = c.status === "done";
|
|
314
359
|
c.status = "done";
|
|
315
360
|
c.ok = result.ok;
|
|
316
361
|
c.assertions = result.assertions;
|
|
@@ -332,6 +377,10 @@ export class EvalRunStore {
|
|
|
332
377
|
if (result.tools !== undefined) {
|
|
333
378
|
c.tools = result.tools;
|
|
334
379
|
}
|
|
380
|
+
// Batch already finalized by cancel — keep case details, skip recount.
|
|
381
|
+
if (run.status === "cancelled" || alreadyCounted) {
|
|
382
|
+
return;
|
|
383
|
+
}
|
|
335
384
|
run.summary.done += 1;
|
|
336
385
|
if (result.ok) {
|
|
337
386
|
run.summary.passed += 1;
|
|
@@ -353,8 +402,23 @@ function markInterruptedRun(run) {
|
|
|
353
402
|
c.error = (_c = c.error) !== null && _c !== void 0 ? _c : INTERRUPTED_CASE_ERROR;
|
|
354
403
|
}
|
|
355
404
|
}
|
|
356
|
-
|
|
357
|
-
|
|
405
|
+
reconcileRunSummary(run);
|
|
406
|
+
}
|
|
407
|
+
function markCancelledRun(run) {
|
|
408
|
+
var _a;
|
|
409
|
+
run.status = "cancelled";
|
|
410
|
+
run.finishedAt = (_a = run.finishedAt) !== null && _a !== void 0 ? _a : new Date().toISOString();
|
|
411
|
+
run.error = CANCELLED_BATCH_ERROR;
|
|
412
|
+
for (const c of run.cases) {
|
|
413
|
+
if (c.status === "pending" || c.status === "running") {
|
|
414
|
+
c.status = "done";
|
|
415
|
+
c.ok = false;
|
|
416
|
+
c.error = CANCELLED_CASE_ERROR;
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
reconcileRunSummary(run);
|
|
420
|
+
}
|
|
421
|
+
function reconcileRunSummary(run) {
|
|
358
422
|
let passed = 0;
|
|
359
423
|
let failed = 0;
|
|
360
424
|
for (const c of run.cases) {
|
|
@@ -401,3 +465,18 @@ export class EvalRunEmptyError extends Error {
|
|
|
401
465
|
this.name = "EvalRunEmptyError";
|
|
402
466
|
}
|
|
403
467
|
}
|
|
468
|
+
export class EvalRunUnknownError extends Error {
|
|
469
|
+
constructor(runId) {
|
|
470
|
+
super(`Unknown eval run ${runId}`);
|
|
471
|
+
this.runId = runId;
|
|
472
|
+
this.name = "EvalRunUnknownError";
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
export class EvalRunNotRunningError extends Error {
|
|
476
|
+
constructor(runId, status) {
|
|
477
|
+
super(`Eval run ${runId} is not running (status: ${status})`);
|
|
478
|
+
this.runId = runId;
|
|
479
|
+
this.status = status;
|
|
480
|
+
this.name = "EvalRunNotRunningError";
|
|
481
|
+
}
|
|
482
|
+
}
|
|
@@ -67,6 +67,8 @@ export interface RunEvalsOptions extends EvalSelectionOptions {
|
|
|
67
67
|
evals: readonly DiscoveredEval[];
|
|
68
68
|
config: Partial<EvalConfigFile>;
|
|
69
69
|
};
|
|
70
|
+
/** When aborted, stop starting new cases and cancel in-flight turns. */
|
|
71
|
+
signal?: AbortSignal;
|
|
70
72
|
}
|
|
71
73
|
export declare function discoverEvals(projectRoot: string, importModule?: (absolutePath: string) => Promise<Record<string, unknown>>): Promise<{
|
|
72
74
|
evals: DiscoveredEval[];
|
|
@@ -75,4 +77,14 @@ export declare function discoverEvals(projectRoot: string, importModule?: (absol
|
|
|
75
77
|
/** Apply id/tag filters used by CLI, playground, and `runDiscoveredEvals`. */
|
|
76
78
|
export declare function filterDiscoveredEvals(evals: readonly DiscoveredEval[], options?: EvalSelectionOptions): DiscoveredEval[];
|
|
77
79
|
export declare function runDiscoveredEvals(options: RunEvalsOptions): Promise<EvalRunResult[]>;
|
|
80
|
+
/**
|
|
81
|
+
* Schedule key for {@link groupEvalsForIterationSchedule}: iteration siblings
|
|
82
|
+
* (`weather/nyc/1`…`/3`) share a key; single-iteration ids keep their full id.
|
|
83
|
+
*/
|
|
84
|
+
export declare function iterationScheduleKey(discovered: DiscoveredEval): string;
|
|
85
|
+
/**
|
|
86
|
+
* Group expanded iteration cases so each authored datapoint's iterations run
|
|
87
|
+
* back-to-back under one {@link mapPool} slot (sorted by iteration index).
|
|
88
|
+
*/
|
|
89
|
+
export declare function groupEvalsForIterationSchedule(evals: readonly DiscoveredEval[]): DiscoveredEval[][];
|
|
78
90
|
//# sourceMappingURL=eval-runner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eval-runner.d.ts","sourceRoot":"","sources":["../../src/internal/eval-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EAMf,MAAM,aAAa,CAAC;AAOrB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAMhD,MAAM,WAAW,cAAc;IAC7B,8EAA8E;IAC9E,EAAE,EAAE,MAAM,CAAC;IACX,sEAAsE;IACtE,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,kBAAkB,CAAC;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,EAAE,EAAE,OAAO,CAAC;IACZ,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,wDAAwD;IACxD,SAAS,CAAC,EAAE,KAAK,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,eAAgB,SAAQ,oBAAoB;IAC3D,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACxC,4EAA4E;IAC5E,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,iDAAiD;IACjD,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7C,kFAAkF;IAClF,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACxD,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1E;;;OAGG;IACH,UAAU,CAAC,EAAE;QACX,KAAK,EAAE,SAAS,cAAc,EAAE,CAAC;QACjC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;KACjC,CAAC;
|
|
1
|
+
{"version":3,"file":"eval-runner.d.ts","sourceRoot":"","sources":["../../src/internal/eval-runner.ts"],"names":[],"mappings":"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"}
|