@cursor/july 0.1.4 → 0.1.6
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/ab.d.ts +8 -95
- package/dist/ab.d.ts.map +1 -1
- package/dist/ab.js +9 -150
- package/dist/bin/agent-serve.js +14 -6
- package/dist/docs/404.html +2 -2
- package/dist/docs/ab.html +4 -4
- package/dist/docs/assets/{app.DF-Yx4OP.js → app.DMboGKUD.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.O6eP7QZr.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.DSeJSudL.js → VPLocalSearchBox.DkEqEnJU.js} +1 -1
- package/dist/docs/assets/chunks/{theme.DZVLTXOC.js → theme.ASugdMNm.js} +2 -2
- package/dist/docs/assets/deployment.md.BtfEsc9S.js +55 -0
- package/dist/docs/assets/deployment.md.BtfEsc9S.lean.js +1 -0
- package/dist/docs/assets/example-agents_approval-buddy.md.8R5phXb5.js +10 -0
- package/dist/docs/assets/example-agents_approval-buddy.md.8R5phXb5.lean.js +1 -0
- package/dist/docs/assets/example-agents_benny.md.B0gjhI-p.js +7 -0
- package/dist/docs/assets/example-agents_benny.md.B0gjhI-p.lean.js +1 -0
- package/dist/docs/assets/example-agents_bugbot.md.DelIdhxB.js +11 -0
- package/dist/docs/assets/example-agents_bugbot.md.DelIdhxB.lean.js +1 -0
- package/dist/docs/assets/example-agents_codebase-wiki.md.DC6sgwn0.js +8 -0
- package/dist/docs/assets/example-agents_codebase-wiki.md.DC6sgwn0.lean.js +1 -0
- package/dist/docs/assets/example-agents_codeowners-review.md.Ku_tG2RY.js +8 -0
- package/dist/docs/assets/example-agents_codeowners-review.md.Ku_tG2RY.lean.js +1 -0
- package/dist/docs/assets/example-agents_concierge.md.4rQTSMXt.js +23 -0
- package/dist/docs/assets/example-agents_concierge.md.4rQTSMXt.lean.js +1 -0
- package/dist/docs/assets/example-agents_fsd.md.CzgUrDfi.js +15 -0
- package/dist/docs/assets/example-agents_fsd.md.CzgUrDfi.lean.js +1 -0
- package/dist/docs/assets/example-agents_index.md.CRqJlnIf.js +2 -0
- package/dist/docs/assets/example-agents_index.md.CRqJlnIf.lean.js +1 -0
- package/dist/docs/assets/example-agents_knowledge-base.md.BPJiVueF.js +11 -0
- package/dist/docs/assets/example-agents_knowledge-base.md.BPJiVueF.lean.js +1 -0
- package/dist/docs/assets/example-agents_security-reviewer.md.D2rtwDTO.js +19 -0
- package/dist/docs/assets/example-agents_security-reviewer.md.D2rtwDTO.lean.js +1 -0
- package/dist/docs/assets/example-agents_slack-agent.md.buLbgvBf.js +5 -0
- package/dist/docs/assets/example-agents_slack-agent.md.buLbgvBf.lean.js +1 -0
- package/dist/docs/assets/example-agents_weather-agent.md.C9Qv-W0o.js +24 -0
- package/dist/docs/assets/example-agents_weather-agent.md.C9Qv-W0o.lean.js +1 -0
- package/dist/docs/assets/index.md.COiu-1jL.js +20 -0
- package/dist/docs/assets/{index.md.Cylk70gg.lean.js → index.md.COiu-1jL.lean.js} +1 -1
- package/dist/docs/assets/reference_cli.md.D189RBCH.js +60 -0
- package/dist/docs/assets/reference_cli.md.D189RBCH.lean.js +1 -0
- package/dist/docs/building-with-agents.html +4 -4
- package/dist/docs/concepts.html +4 -4
- package/dist/docs/deployment.html +58 -17
- package/dist/docs/evals.html +4 -4
- package/dist/docs/example-agents/approval-buddy.html +34 -0
- package/dist/docs/example-agents/benny.html +31 -0
- package/dist/docs/example-agents/bugbot.html +35 -0
- package/dist/docs/example-agents/codebase-wiki.html +32 -0
- package/dist/docs/example-agents/codeowners-review.html +32 -0
- package/dist/docs/example-agents/concierge.html +47 -0
- package/dist/docs/example-agents/fsd.html +39 -0
- package/dist/docs/example-agents/index.html +26 -0
- package/dist/docs/example-agents/knowledge-base.html +35 -0
- package/dist/docs/example-agents/security-reviewer.html +43 -0
- package/dist/docs/example-agents/slack-agent.html +29 -0
- package/dist/docs/example-agents/weather-agent.html +48 -0
- package/dist/docs/guides/agent-to-agent.html +4 -4
- package/dist/docs/guides/cloud-runtime.html +5 -5
- package/dist/docs/guides/github.html +4 -4
- package/dist/docs/guides/human-in-the-loop.html +4 -4
- package/dist/docs/guides/slack.html +4 -4
- package/dist/docs/guides/webhooks.html +4 -4
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +4 -4
- package/dist/docs/index.html +7 -7
- package/dist/docs/quickstart.html +4 -4
- package/dist/docs/reference/agent-config.html +4 -4
- package/dist/docs/reference/channels.html +4 -4
- package/dist/docs/reference/cli.html +52 -30
- package/dist/docs/reference/connections.html +4 -4
- package/dist/docs/reference/hooks.html +4 -4
- package/dist/docs/reference/http-api.html +4 -4
- package/dist/docs/reference/instructions.html +4 -4
- package/dist/docs/reference/playground.html +4 -4
- package/dist/docs/reference/project-layout.html +4 -4
- package/dist/docs/reference/schedules.html +4 -4
- package/dist/docs/reference/sessions.html +4 -4
- package/dist/docs/reference/skills.html +4 -4
- package/dist/docs/reference/subagents.html +4 -4
- package/dist/docs/reference/tools.html +4 -4
- package/dist/docs/scaffolding-agents.html +4 -4
- package/dist/docs/storage.html +4 -4
- package/dist/docs/troubleshooting.html +4 -4
- package/dist/evals.d.ts +4 -61
- package/dist/evals.d.ts.map +1 -1
- package/dist/evals.js +3 -66
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/internal/ab-collector.d.ts +7 -5
- package/dist/internal/ab-collector.d.ts.map +1 -1
- package/dist/internal/ab-collector.js +3 -14
- package/dist/internal/ab-snapshot.d.ts +2 -4
- package/dist/internal/ab-snapshot.d.ts.map +1 -1
- package/dist/internal/cli-ax.d.ts +18 -3
- package/dist/internal/cli-ax.d.ts.map +1 -1
- package/dist/internal/cli-ax.js +80 -42
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +5 -2
- package/dist/internal/cursor-event-relay.d.ts +4 -1
- package/dist/internal/cursor-event-relay.d.ts.map +1 -1
- package/dist/internal/cursor-event-relay.js +6 -0
- package/dist/internal/cursor-relay-core.d.ts +36 -1
- package/dist/internal/cursor-relay-core.d.ts.map +1 -1
- package/dist/internal/cursor-relay-core.js +89 -8
- package/dist/internal/cursor-slack-relay.d.ts +2 -2
- package/dist/internal/cursor-slack-relay.d.ts.map +1 -1
- package/dist/internal/cursor-slack-relay.js +4 -0
- package/dist/internal/discovery.js +3 -3
- package/dist/internal/eval-run-store.d.ts +33 -30
- package/dist/internal/eval-run-store.d.ts.map +1 -1
- package/dist/internal/eval-run-store.js +84 -96
- package/dist/internal/init-project.d.ts.map +1 -1
- package/dist/internal/init-project.js +3 -2
- package/dist/internal/playground-proxy.d.ts +5 -5
- package/dist/internal/playground-proxy.js +3 -3
- package/dist/internal/resolve-prod-target.d.ts +30 -0
- package/dist/internal/resolve-prod-target.d.ts.map +1 -1
- package/dist/internal/resolve-prod-target.js +74 -2
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +5 -3
- package/dist/internal/session-engine.d.ts +1 -2
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +14 -31
- package/dist/internal/storage-coordinator.d.ts +16 -15
- package/dist/internal/storage-coordinator.d.ts.map +1 -1
- package/dist/internal/storage-coordinator.js +73 -80
- package/dist/playground/assets/cursor-icons-16-CQ50JpfO.woff2 +0 -0
- package/dist/playground/assets/index-7GJIUFQj.css +1 -0
- package/dist/playground/assets/index-mux9aj5P.js +319 -0
- package/dist/playground/index.html +2 -2
- package/dist/storage.d.ts +51 -10
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +27 -10
- package/docs/README.md +34 -5
- package/docs/deployment.md +352 -149
- package/docs/example-agents/approval-buddy.md +270 -0
- package/docs/example-agents/benny.md +186 -0
- package/docs/example-agents/bugbot.md +231 -0
- package/docs/example-agents/codebase-wiki.md +174 -0
- package/docs/example-agents/codeowners-review.md +195 -0
- package/docs/example-agents/concierge.md +205 -0
- package/docs/example-agents/fsd.md +330 -0
- package/docs/example-agents/index.md +102 -0
- package/docs/example-agents/knowledge-base.md +171 -0
- package/docs/example-agents/security-reviewer.md +296 -0
- package/docs/example-agents/slack-agent.md +146 -0
- package/docs/example-agents/weather-agent.md +302 -0
- package/docs/reference/cli.md +546 -147
- package/package.json +1 -1
- package/src/ab.ts +9 -261
- package/src/bin/agent-serve.ts +14 -6
- package/src/evals.ts +4 -118
- package/src/index.ts +2 -0
- package/src/internal/ab-collector.ts +12 -22
- package/src/internal/ab-snapshot.ts +2 -4
- package/src/internal/cli-ax.ts +101 -45
- package/src/internal/cli-deploy.ts +5 -2
- package/src/internal/cursor-event-relay.ts +10 -1
- package/src/internal/cursor-relay-core.ts +115 -9
- package/src/internal/cursor-slack-relay.ts +6 -2
- package/src/internal/discovery.ts +2 -2
- package/src/internal/eval-run-store.ts +86 -100
- package/src/internal/init-project.ts +3 -2
- package/src/internal/playground-proxy.ts +5 -5
- package/src/internal/resolve-prod-target.ts +101 -3
- package/src/internal/server.ts +5 -3
- package/src/internal/session-engine.ts +9 -29
- package/src/internal/storage-coordinator.ts +109 -101
- package/src/storage.ts +79 -14
- package/dist/docs/assets/chunks/@localSearchIndexroot.0XrheBv2.js +0 -1
- package/dist/docs/assets/deployment.md.DTKwE15Z.js +0 -14
- package/dist/docs/assets/deployment.md.DTKwE15Z.lean.js +0 -1
- package/dist/docs/assets/index.md.Cylk70gg.js +0 -20
- package/dist/docs/assets/reference_cli.md.Bv6pOxcF.js +0 -38
- package/dist/docs/assets/reference_cli.md.Bv6pOxcF.lean.js +0 -1
- package/dist/internal/json-dir-store.d.ts +0 -32
- package/dist/internal/json-dir-store.d.ts.map +0 -1
- package/dist/internal/json-dir-store.js +0 -100
- package/dist/playground/assets/cursor-icons-outline-BxTT_FVJ.woff2 +0 -0
- package/dist/playground/assets/index-Ct_Usdm8.css +0 -1
- package/dist/playground/assets/index-Dsyb-Vaj.js +0 -319
- package/src/internal/json-dir-store.ts +0 -109
package/dist/evals.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evals.d.ts","sourceRoot":"","sources":["../src/evals.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;
|
|
1
|
+
{"version":3,"file":"evals.d.ts","sourceRoot":"","sources":["../src/evals.ts"],"names":[],"mappings":"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"}
|
package/dist/evals.js
CHANGED
|
@@ -45,18 +45,8 @@
|
|
|
45
45
|
* });
|
|
46
46
|
* ```
|
|
47
47
|
*/
|
|
48
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
49
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
50
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
51
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
52
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
53
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
54
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
55
|
-
});
|
|
56
|
-
};
|
|
57
48
|
import { normalizePositiveInt } from "./internal/bounded-int.js";
|
|
58
49
|
import { brandDefinition } from "./internal/brand.js";
|
|
59
|
-
import { assertNonEmptyDir, deleteFileInDir, readJsonDir, resolveProjectRelativeDir, writeJsonFile, } from "./internal/json-dir-store.js";
|
|
60
50
|
export function includes(value) {
|
|
61
51
|
return { kind: "includes", value };
|
|
62
52
|
}
|
|
@@ -160,13 +150,12 @@ export const EVAL_MAX_PLAYGROUND_RUNS = 500;
|
|
|
160
150
|
* Defaults for every eval under `evals/` (`evals/evals.config.ts`).
|
|
161
151
|
* `maxConcurrency` is required (1–{@link EVAL_MAX_CONCURRENCY_LIMIT}).
|
|
162
152
|
*
|
|
163
|
-
* Playground batches default to **in-memory only
|
|
164
|
-
*
|
|
153
|
+
* Playground batches default to **in-memory only**; author an `evals`
|
|
154
|
+
* table in `agent/storage.ts` (`defineStorage`) to survive serve restart.
|
|
165
155
|
*/
|
|
166
156
|
export function defineEvalConfig(config) {
|
|
167
157
|
var _a;
|
|
168
|
-
|
|
169
|
-
return Object.assign(Object.assign(Object.assign({}, (config.timeoutMs === undefined ? {} : { timeoutMs: config.timeoutMs })), { maxConcurrency: normalizeEvalMaxConcurrency(config.maxConcurrency), maxPlaygroundRuns: normalizeEvalMaxPlaygroundRuns((_a = config.maxPlaygroundRuns) !== null && _a !== void 0 ? _a : EVAL_DEFAULT_MAX_PLAYGROUND_RUNS) }), (persistRuns === undefined ? {} : { persistRuns }));
|
|
158
|
+
return Object.assign(Object.assign({}, (config.timeoutMs === undefined ? {} : { timeoutMs: config.timeoutMs })), { maxConcurrency: normalizeEvalMaxConcurrency(config.maxConcurrency), maxPlaygroundRuns: normalizeEvalMaxPlaygroundRuns((_a = config.maxPlaygroundRuns) !== null && _a !== void 0 ? _a : EVAL_DEFAULT_MAX_PLAYGROUND_RUNS) });
|
|
170
159
|
}
|
|
171
160
|
/**
|
|
172
161
|
* Validate and enforce the hard concurrency ceiling.
|
|
@@ -200,55 +189,3 @@ export function resolveEvalMaxPlaygroundRuns(value) {
|
|
|
200
189
|
return EVAL_DEFAULT_MAX_PLAYGROUND_RUNS;
|
|
201
190
|
}
|
|
202
191
|
}
|
|
203
|
-
function normalizePersistRuns(value) {
|
|
204
|
-
if (value === undefined) {
|
|
205
|
-
return undefined;
|
|
206
|
-
}
|
|
207
|
-
if (typeof value !== "object" ||
|
|
208
|
-
value === null ||
|
|
209
|
-
typeof value.load !== "function" ||
|
|
210
|
-
typeof value.save !== "function" ||
|
|
211
|
-
typeof value.delete !== "function") {
|
|
212
|
-
throw new Error("evals.config.ts: persistRuns must define load(ctx), save(run, ctx), and delete(runId, ctx)");
|
|
213
|
-
}
|
|
214
|
-
return value;
|
|
215
|
-
}
|
|
216
|
-
/**
|
|
217
|
-
* Filesystem {@link EvalRunPersistence}: one JSON file per run under `dir`
|
|
218
|
-
* (relative paths resolve against the agent project root).
|
|
219
|
-
*
|
|
220
|
-
* ```ts
|
|
221
|
-
* export default defineEvalConfig({
|
|
222
|
-
* maxConcurrency: 20,
|
|
223
|
-
* persistRuns: persistEvalRunsToDir(".agent-serve/eval-runs"),
|
|
224
|
-
* });
|
|
225
|
-
* ```
|
|
226
|
-
*/
|
|
227
|
-
export function persistEvalRunsToDir(dir) {
|
|
228
|
-
const relativeDir = assertNonEmptyDir(dir, "persistEvalRunsToDir");
|
|
229
|
-
const resolveDir = (projectRoot) => resolveProjectRelativeDir({ dir: relativeDir, projectRoot });
|
|
230
|
-
return {
|
|
231
|
-
load(ctx) {
|
|
232
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
233
|
-
return readJsonDir(resolveDir(ctx.projectRoot));
|
|
234
|
-
});
|
|
235
|
-
},
|
|
236
|
-
save(run, ctx) {
|
|
237
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
238
|
-
yield writeJsonFile({
|
|
239
|
-
root: resolveDir(ctx.projectRoot),
|
|
240
|
-
fileName: `${run.runId}.json`,
|
|
241
|
-
value: run,
|
|
242
|
-
});
|
|
243
|
-
});
|
|
244
|
-
},
|
|
245
|
-
delete(runId, ctx) {
|
|
246
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
247
|
-
yield deleteFileInDir({
|
|
248
|
-
root: resolveDir(ctx.projectRoot),
|
|
249
|
-
fileName: `${runId}.json`,
|
|
250
|
-
});
|
|
251
|
-
});
|
|
252
|
-
},
|
|
253
|
-
};
|
|
254
|
-
}
|
package/dist/index.d.ts
CHANGED
|
@@ -29,7 +29,7 @@ export { SessionBusyError, ToolInputError, ToolNotDirectlyCallableError, Unknown
|
|
|
29
29
|
export type { ReminderBusyPolicy, ReminderCreateInput, ReminderFireContext, ReminderFireResult, ReminderHostApi, ReminderInfo, ReminderReschedule, ReminderScheduleKind, ReminderStatus, ReminderTarget, ReminderUntilContext, } from "./reminders.js";
|
|
30
30
|
export { defineSchedule } from "./schedules.js";
|
|
31
31
|
export { defineSkill } from "./skills.js";
|
|
32
|
-
export type { StorageConfig, StorageContext, StorageDefinition, StorageEntry, StoragePolicy, StorageRestorePolicy, } from "./storage.js";
|
|
32
|
+
export type { StorageABTable, StorageConfig, StorageContext, StorageDefinition, StorageEntry, StorageEvalsTable, StoragePolicy, StorageRestorePolicy, } from "./storage.js";
|
|
33
33
|
export { defineStorage, STORAGE_KEY_ROOT, storageKeys, } from "./storage.js";
|
|
34
34
|
export { defineTool } from "./tools.js";
|
|
35
35
|
export type * from "./types.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,12 +13,15 @@
|
|
|
13
13
|
* replay already includes the current event — after rebuild we return
|
|
14
14
|
* without folding it again (and without re-firing `onSample`).
|
|
15
15
|
*/
|
|
16
|
-
import { type
|
|
16
|
+
import { type ABMetricSample } from "../ab.js";
|
|
17
17
|
import type { DiscoveredAB, SessionEvent, SessionInfo } from "../types.js";
|
|
18
18
|
export type { DiscoveredAB };
|
|
19
19
|
export interface ABCollectorOptions {
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Durable sample export (the `defineStorage` `abs` table, via the
|
|
22
|
+
* coordinator). Fire-and-forget; must never throw.
|
|
23
|
+
*/
|
|
24
|
+
persistSample?: (sample: ABMetricSample) => void;
|
|
22
25
|
}
|
|
23
26
|
export declare class ABCollector {
|
|
24
27
|
private readonly experiments;
|
|
@@ -26,8 +29,7 @@ export declare class ABCollector {
|
|
|
26
29
|
private readonly loadEvents;
|
|
27
30
|
private readonly state;
|
|
28
31
|
private readonly hydrated;
|
|
29
|
-
private readonly
|
|
30
|
-
private readonly persistSamples;
|
|
32
|
+
private readonly persistSample;
|
|
31
33
|
constructor(experiments: readonly DiscoveredAB[], logger: (line: string) => void, loadEvents: (sessionId: string) => Promise<SessionEvent[]>, options?: ABCollectorOptions);
|
|
32
34
|
get enabled(): boolean;
|
|
33
35
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ab-collector.d.ts","sourceRoot":"","sources":["../../src/internal/ab-collector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAEL,KAAK,
|
|
1
|
+
{"version":3,"file":"ab-collector.d.ts","sourceRoot":"","sources":["../../src/internal/ab-collector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAEL,KAAK,cAAc,EAGpB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAU3E,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7B,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC;CAClD;AASD,qBAAa,WAAW;IAQpB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAT7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsC;IAC5D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAEhB;IAEd,YACmB,WAAW,EAAE,SAAS,YAAY,EAAE,EACpC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAC9B,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,EAAE,CAAC,EAC3E,OAAO,CAAC,EAAE,kBAAkB,EAG7B;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED;;;OAGG;IACG,OAAO,CACX,KAAK,EAAE,YAAY,EACnB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAuBf;IAED,OAAO,CAAC,IAAI;YAKE,IAAI;IA6ElB,OAAO,CAAC,YAAY;CAQrB"}
|
|
@@ -38,8 +38,7 @@ export class ABCollector {
|
|
|
38
38
|
this.loadEvents = loadEvents;
|
|
39
39
|
this.state = new Map();
|
|
40
40
|
this.hydrated = new Set();
|
|
41
|
-
this.
|
|
42
|
-
this.persistSamples = options === null || options === void 0 ? void 0 : options.persistSamples;
|
|
41
|
+
this.persistSample = options === null || options === void 0 ? void 0 : options.persistSample;
|
|
43
42
|
}
|
|
44
43
|
get enabled() {
|
|
45
44
|
return this.experiments.length > 0;
|
|
@@ -78,7 +77,7 @@ export class ABCollector {
|
|
|
78
77
|
}
|
|
79
78
|
fold(event, sessionInfo, agentName, options) {
|
|
80
79
|
return __awaiter(this, void 0, void 0, function* () {
|
|
81
|
-
var _a;
|
|
80
|
+
var _a, _b;
|
|
82
81
|
const session = this.sessionAccum(event.sessionId);
|
|
83
82
|
if (event.type === "ab.assigned") {
|
|
84
83
|
foldABEvent(session, event);
|
|
@@ -121,17 +120,7 @@ export class ABCollector {
|
|
|
121
120
|
catch (error) {
|
|
122
121
|
this.logger(`[agentkit] ab "${experiment.name}" onSample threw: ${describeError(error)}`);
|
|
123
122
|
}
|
|
124
|
-
|
|
125
|
-
this.projectRoot !== undefined) {
|
|
126
|
-
try {
|
|
127
|
-
yield this.persistSamples.save(sample, {
|
|
128
|
-
projectRoot: this.projectRoot,
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
catch (error) {
|
|
132
|
-
this.logger(`[agentkit] ab persistSamples.save threw: ${describeError(error)}`);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
123
|
+
(_b = this.persistSample) === null || _b === void 0 ? void 0 : _b.call(this, sample);
|
|
135
124
|
}
|
|
136
125
|
}
|
|
137
126
|
});
|
|
@@ -38,12 +38,10 @@ export interface ABSnapshotExperiment {
|
|
|
38
38
|
export interface ABSnapshotConfig {
|
|
39
39
|
/** Newest-first session fold window for this snapshot (`GET /v1/abs`). */
|
|
40
40
|
maxPlaygroundSessions?: number;
|
|
41
|
-
/** True when `
|
|
41
|
+
/** True when the `defineStorage` `abs` table is configured. */
|
|
42
42
|
durableSamples?: boolean;
|
|
43
|
-
/** True when `
|
|
43
|
+
/** True when the `abs` table also stores the aggregate snapshot. */
|
|
44
44
|
durableSnapshots?: boolean;
|
|
45
|
-
/** Set when writing via filesystem snapshot persistence helpers. */
|
|
46
|
-
snapshotId?: string;
|
|
47
45
|
}
|
|
48
46
|
export interface ABSnapshot {
|
|
49
47
|
experiments: ABSnapshotExperiment[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ab-snapshot.d.ts","sourceRoot":"","sources":["../../src/internal/ab-snapshot.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,aAAa,EAGnB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,aAAa,EACb,cAAc,EACf,MAAM,aAAa,CAAC;AAIrB,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kDAAkD;IAClD,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,oBAAoB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACxC,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,aAAa,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B
|
|
1
|
+
{"version":3,"file":"ab-snapshot.d.ts","sourceRoot":"","sources":["../../src/internal/ab-snapshot.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,aAAa,EAGnB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,aAAa,EACb,cAAc,EACf,MAAM,aAAa,CAAC;AAIrB,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kDAAkD;IAClD,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,oBAAoB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACxC,mDAAmD;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,aAAa,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,+DAA+D;IAC/D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oEAAoE;IACpE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,SAAS,YAAY,EAAE,CAAC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,QAAQ,EAAE,SAAS,cAAc,EAAE,CAAC;IACpC,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IACtE,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC3D,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,WAAW,CAAC;IACpD,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,UAAU,CAAC,CAiOrB;AAiBD,gFAAgF;AAChF,YAAY,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -48,8 +48,15 @@ export interface AxCliOptions {
|
|
|
48
48
|
* Route chat/resume/run/call/eval/logs/sessions at the team's hosted
|
|
49
49
|
* deployment
|
|
50
50
|
* instead of a local ephemeral server. Mutually exclusive with `--url`.
|
|
51
|
+
* `eval` targets the deployment by default, so there `--prod` is just
|
|
52
|
+
* being explicit.
|
|
51
53
|
*/
|
|
52
54
|
prod?: boolean;
|
|
55
|
+
/**
|
|
56
|
+
* `eval`: run against an ephemeral local server instead of the hosted
|
|
57
|
+
* deployment (the eval default). Mutually exclusive with `--url`/`--prod`.
|
|
58
|
+
*/
|
|
59
|
+
local?: boolean;
|
|
53
60
|
/** Cursor team id for `--prod` (defaults to the account's team). */
|
|
54
61
|
team?: string;
|
|
55
62
|
/** Cursor API key override for `--prod` management calls. */
|
|
@@ -112,6 +119,14 @@ export declare function cmdRun(options: AxCliOptions): Promise<number>;
|
|
|
112
119
|
*/
|
|
113
120
|
export declare function cmdCall(options: AxCliOptions): Promise<number>;
|
|
114
121
|
export declare function cmdTrajectory(options: AxCliOptions): Promise<number>;
|
|
122
|
+
/**
|
|
123
|
+
* Which surface `eval` should target. Deployment is the default; `--local`
|
|
124
|
+
* opts into an ephemeral local server, `--url` into a running one.
|
|
125
|
+
* Exported for tests.
|
|
126
|
+
*/
|
|
127
|
+
export declare function resolveEvalTargetMode(options: Pick<AxCliOptions, "local" | "prod" | "url">): "local" | "url" | "deployment" | {
|
|
128
|
+
error: string;
|
|
129
|
+
};
|
|
115
130
|
export declare function cmdEval(options: AxCliOptions): Promise<number>;
|
|
116
131
|
/**
|
|
117
132
|
* `logs` — follow deploy progress (`--prod`) then runtime agent logs.
|
|
@@ -131,9 +146,9 @@ export declare function cmdSession(sessionId: string | undefined, options: AxCli
|
|
|
131
146
|
/**
|
|
132
147
|
* `playground` — open the web UI against local / `--url` / `--prod`.
|
|
133
148
|
*
|
|
134
|
-
*
|
|
135
|
-
*
|
|
136
|
-
*
|
|
149
|
+
* `--prod` opens the stable hosted alias playground URL; the SPA collects
|
|
150
|
+
* the alias token. `--bearer-token` (and other injected headers) still run a
|
|
151
|
+
* loopback reverse proxy — Ctrl-C stops that proxy.
|
|
137
152
|
*/
|
|
138
153
|
export declare function cmdPlayground(options: AxCliOptions): Promise<number>;
|
|
139
154
|
//# sourceMappingURL=cli-ax.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-ax.d.ts","sourceRoot":"","sources":["../../src/internal/cli-ax.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"cli-ax.d.ts","sourceRoot":"","sources":["../../src/internal/cli-ax.ts"],"names":[],"mappings":"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"}
|
package/dist/internal/cli-ax.js
CHANGED
|
@@ -30,7 +30,7 @@ import { offerInstallCursorSkills } from "./install-cursor-skills.js";
|
|
|
30
30
|
import { runLogsTail, sanitizeCustomerError } from "./logs-client.js";
|
|
31
31
|
import { openBrowser } from "./open-browser.js";
|
|
32
32
|
import { startPlaygroundProxy } from "./playground-proxy.js";
|
|
33
|
-
import { resolveProdSlug, resolveProdTarget } from "./resolve-prod-target.js";
|
|
33
|
+
import { ProdTargetError, resolveProdAliasPlaygroundUrl, resolveProdSlug, resolveProdTarget, } from "./resolve-prod-target.js";
|
|
34
34
|
import { runSession } from "./run-client.js";
|
|
35
35
|
import { fetchSessionEvents, formatSessionsTable, listSessions, resolvePreviousSessionId, } from "./sessions-client.js";
|
|
36
36
|
import { createStreamProgress } from "./stream-progress.js";
|
|
@@ -475,6 +475,70 @@ export function cmdTrajectory(options) {
|
|
|
475
475
|
return trajectory.ok ? 0 : 1;
|
|
476
476
|
});
|
|
477
477
|
}
|
|
478
|
+
/**
|
|
479
|
+
* Which surface `eval` should target. Deployment is the default; `--local`
|
|
480
|
+
* opts into an ephemeral local server, `--url` into a running one.
|
|
481
|
+
* Exported for tests.
|
|
482
|
+
*/
|
|
483
|
+
export function resolveEvalTargetMode(options) {
|
|
484
|
+
const flags = [
|
|
485
|
+
options.local === true ? "--local" : undefined,
|
|
486
|
+
options.prod === true ? "--prod" : undefined,
|
|
487
|
+
options.url !== undefined ? "--url" : undefined,
|
|
488
|
+
].filter((flag) => flag !== undefined);
|
|
489
|
+
if (flags.length > 1) {
|
|
490
|
+
return { error: `${flags.join(" and ")} are mutually exclusive` };
|
|
491
|
+
}
|
|
492
|
+
if (options.local === true) {
|
|
493
|
+
return "local";
|
|
494
|
+
}
|
|
495
|
+
if (options.url !== undefined) {
|
|
496
|
+
return "url";
|
|
497
|
+
}
|
|
498
|
+
return "deployment";
|
|
499
|
+
}
|
|
500
|
+
/** Resolve the eval target; prints a CLI-ready error and returns an exit code on failure. */
|
|
501
|
+
function resolveEvalTarget(options) {
|
|
502
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
503
|
+
const mode = resolveEvalTargetMode(options);
|
|
504
|
+
if (typeof mode === "object") {
|
|
505
|
+
process.stderr.write(`${mode.error}\n`);
|
|
506
|
+
return 2;
|
|
507
|
+
}
|
|
508
|
+
if (mode === "url") {
|
|
509
|
+
return { agentUrl: options.url.replace(/\/$/, "") };
|
|
510
|
+
}
|
|
511
|
+
if (mode === "local") {
|
|
512
|
+
return startEphemeral(options);
|
|
513
|
+
}
|
|
514
|
+
try {
|
|
515
|
+
const prod = yield resolveProdTarget({
|
|
516
|
+
dir: options.dir,
|
|
517
|
+
cwd: options.cwd,
|
|
518
|
+
slug: options.slug,
|
|
519
|
+
team: options.team,
|
|
520
|
+
apiKey: options.apiKey,
|
|
521
|
+
fetchImpl: options.fetchImpl,
|
|
522
|
+
});
|
|
523
|
+
return { agentUrl: prod.agentUrl, headers: prod.headers };
|
|
524
|
+
}
|
|
525
|
+
catch (error) {
|
|
526
|
+
if (error instanceof ProdTargetError && error.notFound) {
|
|
527
|
+
// Keep the API error text: a 404 can also mean a wrong API host or a
|
|
528
|
+
// disabled feature gate, and the message distinguishes those from a
|
|
529
|
+
// genuinely missing deployment.
|
|
530
|
+
process.stderr.write(`${sanitizeCustomerError(error.message)}\n` +
|
|
531
|
+
`Evals run on the hosted deployment by default.\n` +
|
|
532
|
+
` deploy it first: ${CLI_COMMAND_NAME} deploy --slug ${error.slug}\n` +
|
|
533
|
+
` or run locally: ${CLI_COMMAND_NAME} eval --local --dir ${options.dir}\n`);
|
|
534
|
+
return 1;
|
|
535
|
+
}
|
|
536
|
+
process.stderr.write(`${sanitizeCustomerError(error instanceof Error ? error.message : String(error))}\n` +
|
|
537
|
+
`Evals run on the hosted deployment by default; pass --local to run on an ephemeral local server.\n`);
|
|
538
|
+
return 1;
|
|
539
|
+
}
|
|
540
|
+
});
|
|
541
|
+
}
|
|
478
542
|
export function cmdEval(options) {
|
|
479
543
|
return __awaiter(this, void 0, void 0, function* () {
|
|
480
544
|
var _a;
|
|
@@ -510,7 +574,10 @@ export function cmdEval(options) {
|
|
|
510
574
|
}
|
|
511
575
|
return 0;
|
|
512
576
|
}
|
|
513
|
-
const target = yield
|
|
577
|
+
const target = yield resolveEvalTarget(options);
|
|
578
|
+
if (typeof target === "number") {
|
|
579
|
+
return target;
|
|
580
|
+
}
|
|
514
581
|
const stream = shouldStreamProgress(options);
|
|
515
582
|
const progress = stream ? createStreamProgress() : undefined;
|
|
516
583
|
try {
|
|
@@ -770,9 +837,9 @@ export function cmdSession(sessionId, options) {
|
|
|
770
837
|
/**
|
|
771
838
|
* `playground` — open the web UI against local / `--url` / `--prod`.
|
|
772
839
|
*
|
|
773
|
-
*
|
|
774
|
-
*
|
|
775
|
-
*
|
|
840
|
+
* `--prod` opens the stable hosted alias playground URL; the SPA collects
|
|
841
|
+
* the alias token. `--bearer-token` (and other injected headers) still run a
|
|
842
|
+
* loopback reverse proxy — Ctrl-C stops that proxy.
|
|
776
843
|
*/
|
|
777
844
|
export function cmdPlayground(options) {
|
|
778
845
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -783,58 +850,29 @@ export function cmdPlayground(options) {
|
|
|
783
850
|
const sessionId = options.sessionId !== undefined && options.sessionId.trim() !== ""
|
|
784
851
|
? options.sessionId.trim()
|
|
785
852
|
: undefined;
|
|
786
|
-
// Hosted:
|
|
853
|
+
// Hosted: open the alias playground; SPA owns alias-token sign-in.
|
|
787
854
|
if (options.prod === true) {
|
|
788
|
-
let
|
|
855
|
+
let resolved;
|
|
789
856
|
try {
|
|
790
|
-
|
|
857
|
+
resolved = yield resolveProdAliasPlaygroundUrl({
|
|
791
858
|
dir: options.dir,
|
|
792
859
|
cwd: options.cwd,
|
|
793
860
|
slug: options.slug,
|
|
794
861
|
team: options.team,
|
|
795
862
|
apiKey: options.apiKey,
|
|
796
863
|
fetchImpl: options.fetchImpl,
|
|
864
|
+
sessionId,
|
|
797
865
|
});
|
|
798
866
|
}
|
|
799
867
|
catch (error) {
|
|
800
868
|
process.stderr.write(`${sanitizeCustomerError(error instanceof Error ? error.message : String(error))}\n`);
|
|
801
869
|
return 1;
|
|
802
870
|
}
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
upstreamUrl: initial.agentUrl,
|
|
807
|
-
headers: initial.headers,
|
|
808
|
-
expiresAt: initial.expiresAt,
|
|
809
|
-
refreshUpstream: () => __awaiter(this, void 0, void 0, function* () {
|
|
810
|
-
var _a;
|
|
811
|
-
const next = yield resolveProdTarget({
|
|
812
|
-
dir: options.dir,
|
|
813
|
-
cwd: options.cwd,
|
|
814
|
-
slug: (_a = options.slug) !== null && _a !== void 0 ? _a : initial.slug,
|
|
815
|
-
team: options.team,
|
|
816
|
-
apiKey: options.apiKey,
|
|
817
|
-
fetchImpl: options.fetchImpl,
|
|
818
|
-
err: () => { },
|
|
819
|
-
});
|
|
820
|
-
return {
|
|
821
|
-
upstreamUrl: next.agentUrl,
|
|
822
|
-
headers: next.headers,
|
|
823
|
-
expiresAt: next.expiresAt,
|
|
824
|
-
};
|
|
825
|
-
}),
|
|
826
|
-
});
|
|
827
|
-
}
|
|
828
|
-
catch (error) {
|
|
829
|
-
process.stderr.write(`${sanitizeCustomerError(error instanceof Error ? error.message : String(error))}\n`);
|
|
830
|
-
return 1;
|
|
871
|
+
process.stdout.write(`${resolved.playgroundUrl}\n`);
|
|
872
|
+
if (options.print !== true) {
|
|
873
|
+
openBrowser(resolved.playgroundUrl);
|
|
831
874
|
}
|
|
832
|
-
return
|
|
833
|
-
proxy,
|
|
834
|
-
sessionId,
|
|
835
|
-
print: options.print === true,
|
|
836
|
-
signal: options.signal,
|
|
837
|
-
});
|
|
875
|
+
return 0;
|
|
838
876
|
}
|
|
839
877
|
const target = yield resolveSessionTarget(options);
|
|
840
878
|
if (typeof target === "number") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-deploy.d.ts","sourceRoot":"","sources":["../../src/internal/cli-deploy.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"cli-deploy.d.ts","sourceRoot":"","sources":["../../src/internal/cli-deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -463,7 +463,8 @@ function deployOne(ctx, options, target, extras) {
|
|
|
463
463
|
` generation: ${detail.generation}\n` +
|
|
464
464
|
` kind: ${detail.deploymentKind}\n` +
|
|
465
465
|
` alias: ${aliasUrl}\n` +
|
|
466
|
-
` playground: ${
|
|
466
|
+
` playground: ${aliasUrl}/playground (sign in with the alias token)\n` +
|
|
467
|
+
` open: ${CLI} playground --prod --slug ${slug} --team ${ctx.teamId}\n`);
|
|
467
468
|
return 0;
|
|
468
469
|
});
|
|
469
470
|
}
|
|
@@ -563,6 +564,7 @@ export function cmdDeploymentStatus(slug, options) {
|
|
|
563
564
|
` generation: ${detail.generation}`,
|
|
564
565
|
` kind: ${detail.deploymentKind}`,
|
|
565
566
|
` alias: ${aliasUrl}`,
|
|
567
|
+
` playground: ${aliasUrl}/playground`,
|
|
566
568
|
];
|
|
567
569
|
if (detail.gitRepoUrl !== null && detail.gitRepoUrl !== undefined) {
|
|
568
570
|
lines.push(` repo: ${detail.gitRepoUrl} @ ${(_b = detail.gitRef) !== null && _b !== void 0 ? _b : ""}`);
|
|
@@ -983,7 +985,8 @@ function pollUntil(ctx, slug, terminal) {
|
|
|
983
985
|
function aliasTokenBlock(aliasToken) {
|
|
984
986
|
return (`\n Alias token (shown ONCE — save it now, it cannot be retrieved again):\n\n` +
|
|
985
987
|
` ${aliasToken}\n\n` +
|
|
986
|
-
` Send it as the X-Agent-Alias-Token header on requests to the alias URL
|
|
988
|
+
` Send it as the X-Agent-Alias-Token header on requests to the alias URL,\n` +
|
|
989
|
+
` or paste it into the hosted playground (<alias>/playground) sign-in gate.\n` +
|
|
987
990
|
` Lost tokens: \`${CLI} rotate-token <slug>\` mints a replacement.\n\n`);
|
|
988
991
|
}
|
|
989
992
|
function renderApiError(error, err) {
|
|
@@ -52,7 +52,10 @@ export interface CursorEventRelayOptions {
|
|
|
52
52
|
repos: readonly string[];
|
|
53
53
|
events: readonly string[];
|
|
54
54
|
stateDir: string;
|
|
55
|
-
/**
|
|
55
|
+
/**
|
|
56
|
+
* Called for each matching event; failures retry a bounded number of
|
|
57
|
+
* times, then log and skip.
|
|
58
|
+
*/
|
|
56
59
|
dispatch: (event: CursorScmEvent) => Promise<void>;
|
|
57
60
|
logger: (line: string) => void;
|
|
58
61
|
/** Test seam. Defaults to global fetch. */
|
|
@@ -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
|
|
1
|
+
{"version":3,"file":"cursor-event-relay.d.ts","sourceRoot":"","sources":["../../src/internal/cursor-event-relay.ts"],"names":[],"mappings":"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"}
|
|
@@ -129,6 +129,12 @@ export class CursorEventRelay {
|
|
|
129
129
|
events: [...this.options.events],
|
|
130
130
|
})),
|
|
131
131
|
}),
|
|
132
|
+
// Empty subscriptions drop this consumer's registration on clean stop
|
|
133
|
+
// instead of leaving it to lapse by TTL.
|
|
134
|
+
buildDeregistrationBody: (consumerId) => ({
|
|
135
|
+
consumerId,
|
|
136
|
+
subscriptions: [],
|
|
137
|
+
}),
|
|
132
138
|
applyRegistrationResponse: (json) => {
|
|
133
139
|
var _a, _b;
|
|
134
140
|
const result = json;
|
|
@@ -34,6 +34,14 @@ export interface RelayAdapter<TEvent extends {
|
|
|
34
34
|
readonly pollPath: string;
|
|
35
35
|
/** The registration request body for this consumer id. */
|
|
36
36
|
buildRegistrationBody(consumerId: string): unknown;
|
|
37
|
+
/**
|
|
38
|
+
* The empty-scope registration body used to deregister this consumer on a
|
|
39
|
+
* clean stop. When present, `stop()` best-effort PUTs it so the consumer's
|
|
40
|
+
* registration does not linger as a ghost until its server-side TTL (a
|
|
41
|
+
* ghost with this host's agent names makes name routing ambiguous for a
|
|
42
|
+
* redeployed sibling until it expires).
|
|
43
|
+
*/
|
|
44
|
+
buildDeregistrationBody?(consumerId: string): unknown;
|
|
37
45
|
/**
|
|
38
46
|
* Apply the (ok) registration response: update the accepted-scope filter
|
|
39
47
|
* and return the human-readable outcome lines to log. The core logs them
|
|
@@ -47,7 +55,10 @@ export interface RelayAdapter<TEvent extends {
|
|
|
47
55
|
* the offset but are not dispatched.
|
|
48
56
|
*/
|
|
49
57
|
shouldDispatch(event: TEvent): boolean;
|
|
50
|
-
/**
|
|
58
|
+
/**
|
|
59
|
+
* Handle one matching event. Failures retry a bounded number of times
|
|
60
|
+
* ({@link DISPATCH_ATTEMPTS}), then log and skip.
|
|
61
|
+
*/
|
|
51
62
|
dispatch(event: TEvent): Promise<void>;
|
|
52
63
|
}
|
|
53
64
|
export interface CursorRelayCoreOptions<TEvent extends {
|
|
@@ -76,6 +87,14 @@ export declare class CursorRelayCore<TEvent extends {
|
|
|
76
87
|
private consumerId;
|
|
77
88
|
/** undefined until the first registration, so a clean first success logs. */
|
|
78
89
|
private lastRegistrationLog;
|
|
90
|
+
/** Whether any registration succeeded (gates the stop-time deregister). */
|
|
91
|
+
private registeredOnce;
|
|
92
|
+
/**
|
|
93
|
+
* The in-flight heartbeat re-registration, if any. `stop()` awaits it
|
|
94
|
+
* before deregistering so a just-sent heartbeat cannot land after the
|
|
95
|
+
* deregistration PUT and resurrect the registration for a full TTL.
|
|
96
|
+
*/
|
|
97
|
+
private heartbeatPromise;
|
|
79
98
|
constructor(options: CursorRelayCoreOptions<TEvent>);
|
|
80
99
|
start(): void;
|
|
81
100
|
/**
|
|
@@ -92,6 +111,14 @@ export declare class CursorRelayCore<TEvent extends {
|
|
|
92
111
|
*/
|
|
93
112
|
resolveConsumerId(): Promise<string>;
|
|
94
113
|
stop(): Promise<void>;
|
|
114
|
+
/**
|
|
115
|
+
* Best-effort empty-scope PUT on clean stop, so this consumer's
|
|
116
|
+
* registration is dropped immediately instead of lingering until its
|
|
117
|
+
* server-side TTL. A ghost registration keeps this host's agent names
|
|
118
|
+
* live and makes name routing ambiguous for a redeployed sibling with a
|
|
119
|
+
* fresh consumer id. Failures only log — the TTL still cleans up.
|
|
120
|
+
*/
|
|
121
|
+
private deregister;
|
|
95
122
|
private log;
|
|
96
123
|
private request;
|
|
97
124
|
/** Retry registration with backoff until it succeeds or the relay stops. */
|
|
@@ -105,6 +132,14 @@ export declare class CursorRelayCore<TEvent extends {
|
|
|
105
132
|
/** Log registration outcome lines only when they change (heartbeat-quiet). */
|
|
106
133
|
private logRegistrationOutcome;
|
|
107
134
|
private consumeLoop;
|
|
135
|
+
/**
|
|
136
|
+
* Dispatch one event with a small bounded retry before the offset advances
|
|
137
|
+
* past it. Transient local failures (e.g. a connection reset while POSTing
|
|
138
|
+
* to the channel) used to drop the event outright; a poison event still
|
|
139
|
+
* only costs {@link DISPATCH_ATTEMPTS} tries and is then skipped, keeping
|
|
140
|
+
* at-least-once semantics without a retry loop.
|
|
141
|
+
*/
|
|
142
|
+
private dispatchWithRetry;
|
|
108
143
|
/** Log the failure, sleep, and return the backoff for the NEXT failure. */
|
|
109
144
|
private backoffAfterHttpFailure;
|
|
110
145
|
private sleep;
|