@cursor/july 0.1.47 → 0.1.48
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 +30 -35
- package/dist/docs/404.html +1 -1
- package/dist/docs/ab.html +2 -2
- package/dist/docs/assets/{app.IEXEim5m.js → app.BC1P20xI.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.DV5SAHnQ.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.78s6nqsH.js → VPLocalSearchBox.C_900xn2.js} +1 -1
- package/dist/docs/assets/chunks/{theme.DroGdz_Q.js → theme.CT135Jhh.js} +2 -2
- package/dist/docs/building-with-agents.html +2 -2
- package/dist/docs/concepts.html +2 -2
- package/dist/docs/deployment.html +2 -2
- package/dist/docs/evals.html +2 -2
- package/dist/docs/example-agents/approval-buddy.html +2 -2
- package/dist/docs/example-agents/benny.html +2 -2
- package/dist/docs/example-agents/bugbot.html +2 -2
- package/dist/docs/example-agents/codebase-wiki.html +2 -2
- package/dist/docs/example-agents/codeowners-review.html +2 -2
- package/dist/docs/example-agents/concierge.html +2 -2
- package/dist/docs/example-agents/fsd.html +2 -2
- package/dist/docs/example-agents/index.html +2 -2
- package/dist/docs/example-agents/knowledge-base.html +2 -2
- package/dist/docs/example-agents/oncall.html +2 -2
- package/dist/docs/example-agents/security-reviewer.html +2 -2
- package/dist/docs/example-agents/slack-agent.html +2 -2
- package/dist/docs/example-agents/weather-agent.html +2 -2
- package/dist/docs/guides/agent-to-agent.html +2 -2
- package/dist/docs/guides/cloud-runtime.html +2 -2
- package/dist/docs/guides/github.html +2 -2
- package/dist/docs/guides/human-in-the-loop.html +2 -2
- package/dist/docs/guides/mcp-oauth.html +2 -2
- package/dist/docs/guides/opentelemetry.html +2 -2
- package/dist/docs/guides/slack.html +2 -2
- package/dist/docs/guides/webhooks.html +2 -2
- package/dist/docs/hillclimbing.html +2 -2
- package/dist/docs/index.html +2 -2
- package/dist/docs/quickstart.html +2 -2
- package/dist/docs/reference/agent-config.html +2 -2
- package/dist/docs/reference/artifacts.html +2 -2
- package/dist/docs/reference/channels.html +2 -2
- package/dist/docs/reference/cli.html +2 -2
- package/dist/docs/reference/connections.html +2 -2
- package/dist/docs/reference/hooks.html +2 -2
- package/dist/docs/reference/http-api.html +2 -2
- package/dist/docs/reference/instructions.html +2 -2
- package/dist/docs/reference/playground.html +2 -2
- package/dist/docs/reference/project-layout.html +2 -2
- package/dist/docs/reference/prompt.html +2 -2
- package/dist/docs/reference/schedules.html +2 -2
- package/dist/docs/reference/sessions.html +2 -2
- package/dist/docs/reference/skills.html +2 -2
- package/dist/docs/reference/subagents.html +2 -2
- package/dist/docs/reference/tools.html +2 -2
- package/dist/docs/scaffolding-agents.html +2 -2
- package/dist/docs/storage.html +2 -2
- package/dist/docs/templates/triage.html +2 -2
- package/dist/docs/troubleshooting.html +2 -2
- package/dist/internal/authored-loaders.d.ts +19 -0
- package/dist/internal/authored-loaders.d.ts.map +1 -1
- package/dist/internal/authored-loaders.js +39 -0
- package/dist/internal/cli-deploy.d.ts +2 -1
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +97 -1
- package/dist/internal/deploy-client.d.ts +7 -2
- package/dist/internal/deploy-client.d.ts.map +1 -1
- package/dist/internal/deploy-client.js +12 -0
- package/dist/internal/discovery.d.ts.map +1 -1
- package/dist/internal/discovery.js +2 -8
- package/dist/internal/eval-runner.d.ts.map +1 -1
- package/dist/internal/eval-runner.js +3 -8
- package/dist/internal/logs-client.d.ts +1 -1
- package/dist/internal/logs-client.d.ts.map +1 -1
- package/dist/internal/logs-client.js +3 -0
- package/dist/internal/serve-restart.d.ts +42 -0
- package/dist/internal/serve-restart.d.ts.map +1 -0
- package/dist/internal/serve-restart.js +85 -0
- package/dist/playground/assets/index-CiCmH6R-.css +1 -0
- package/dist/playground/assets/{index-BgUHfe3L.js → index-DEVTyeOu.js} +46 -46
- package/dist/playground/index.html +2 -2
- package/package.json +1 -1
- package/src/bin/agent-serve.ts +39 -38
- package/src/internal/authored-loaders.ts +45 -0
- package/src/internal/cli-deploy.ts +103 -1
- package/src/internal/deploy-client.ts +19 -1
- package/src/internal/discovery.ts +5 -12
- package/src/internal/eval-runner.ts +3 -12
- package/src/internal/logs-client.ts +4 -0
- package/src/internal/serve-restart.ts +120 -0
- package/dist/docs/assets/chunks/@localSearchIndexroot.D7w61u6Y.js +0 -1
- package/dist/playground/assets/index-uFaeqVZS.css +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `agent-sdk deploy | deployments | deployment | stop | rotate-token |
|
|
2
|
+
* `agent-sdk deploy | deployments | deployment | stop | delete | rotate-token |
|
|
3
3
|
* rotate-pod-credential | secrets set|list|unset` — Heroku-style deploys
|
|
4
4
|
* onto Cursor's managed agent-serve hosting.
|
|
5
5
|
*
|
|
@@ -788,6 +788,54 @@ export function cmdStop(slug, options) {
|
|
|
788
788
|
});
|
|
789
789
|
}
|
|
790
790
|
// ============================================================================
|
|
791
|
+
// delete <slug>
|
|
792
|
+
// ============================================================================
|
|
793
|
+
export function cmdDelete(slug, options) {
|
|
794
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
795
|
+
var _a;
|
|
796
|
+
if (slug === undefined || slug === "") {
|
|
797
|
+
((_a = options.err) !== null && _a !== void 0 ? _a : ((t) => void process.stderr.write(t)))(`Usage: ${CLI} delete <slug> [--team <id>] [--json] [--no-wait]\n`);
|
|
798
|
+
return 1;
|
|
799
|
+
}
|
|
800
|
+
const ctx = yield prepare(options);
|
|
801
|
+
if (typeof ctx === "number") {
|
|
802
|
+
return ctx;
|
|
803
|
+
}
|
|
804
|
+
let accepted;
|
|
805
|
+
try {
|
|
806
|
+
accepted = yield ctx.client.deleteDeployment({
|
|
807
|
+
teamId: ctx.teamId,
|
|
808
|
+
slug,
|
|
809
|
+
});
|
|
810
|
+
}
|
|
811
|
+
catch (error) {
|
|
812
|
+
return renderApiError(error, ctx.err);
|
|
813
|
+
}
|
|
814
|
+
if (ctx.noWait) {
|
|
815
|
+
if (ctx.json) {
|
|
816
|
+
ctx.out(`${JSON.stringify(accepted, null, 2)}\n`);
|
|
817
|
+
}
|
|
818
|
+
else {
|
|
819
|
+
ctx.out(`Delete accepted for ${slug} (status: ${accepted.status}).\n`);
|
|
820
|
+
}
|
|
821
|
+
return 0;
|
|
822
|
+
}
|
|
823
|
+
try {
|
|
824
|
+
yield pollUntilGone(ctx, slug);
|
|
825
|
+
}
|
|
826
|
+
catch (error) {
|
|
827
|
+
return renderApiError(error, ctx.err);
|
|
828
|
+
}
|
|
829
|
+
if (ctx.json) {
|
|
830
|
+
ctx.out(`${JSON.stringify({ slug, status: "deleted" }, null, 2)}\n`);
|
|
831
|
+
}
|
|
832
|
+
else {
|
|
833
|
+
ctx.out(`Deleted ${slug} (team ${ctx.teamId}).\n`);
|
|
834
|
+
}
|
|
835
|
+
return 0;
|
|
836
|
+
});
|
|
837
|
+
}
|
|
838
|
+
// ============================================================================
|
|
791
839
|
// rotate-token <slug>
|
|
792
840
|
// ============================================================================
|
|
793
841
|
export function cmdRotateToken(slug, options) {
|
|
@@ -1135,6 +1183,54 @@ function pollUntil(ctx, slug, terminal) {
|
|
|
1135
1183
|
}
|
|
1136
1184
|
});
|
|
1137
1185
|
}
|
|
1186
|
+
/**
|
|
1187
|
+
* Wait until GET 404s (the delete reconciler purged the record). Treats
|
|
1188
|
+
* other errors as failures. Throws DeployApiError on timeout.
|
|
1189
|
+
*/
|
|
1190
|
+
function pollUntilGone(ctx, slug) {
|
|
1191
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1192
|
+
const startedAt = Date.now();
|
|
1193
|
+
const tty = process.stderr.isTTY === true;
|
|
1194
|
+
let sawProgress = false;
|
|
1195
|
+
const report = (label) => {
|
|
1196
|
+
if (ctx.json) {
|
|
1197
|
+
return;
|
|
1198
|
+
}
|
|
1199
|
+
const elapsed = Math.round((Date.now() - startedAt) / 1000);
|
|
1200
|
+
if (tty) {
|
|
1201
|
+
ctx.err(`\r\x1b[2K${slug}: ${label} (${elapsed}s)`);
|
|
1202
|
+
sawProgress = true;
|
|
1203
|
+
}
|
|
1204
|
+
};
|
|
1205
|
+
const finishProgressLine = () => {
|
|
1206
|
+
if (tty && sawProgress) {
|
|
1207
|
+
ctx.err("\n");
|
|
1208
|
+
}
|
|
1209
|
+
};
|
|
1210
|
+
for (;;) {
|
|
1211
|
+
try {
|
|
1212
|
+
const detail = yield ctx.client.getDeployment({
|
|
1213
|
+
teamId: ctx.teamId,
|
|
1214
|
+
slug,
|
|
1215
|
+
});
|
|
1216
|
+
report(deployProgressLabel(detail));
|
|
1217
|
+
}
|
|
1218
|
+
catch (error) {
|
|
1219
|
+
if (error instanceof DeployApiError && error.status === 404) {
|
|
1220
|
+
finishProgressLine();
|
|
1221
|
+
return;
|
|
1222
|
+
}
|
|
1223
|
+
finishProgressLine();
|
|
1224
|
+
throw error;
|
|
1225
|
+
}
|
|
1226
|
+
if (Date.now() - startedAt >= ctx.timeoutMs) {
|
|
1227
|
+
finishProgressLine();
|
|
1228
|
+
throw new DeployApiError(`Timed out after ${Math.round(ctx.timeoutMs / 1000)}s waiting for ${slug} to disappear. It may still be deleting — check \`${CLI} deployment ${slug} --team ${ctx.teamId}\`.`, 0);
|
|
1229
|
+
}
|
|
1230
|
+
yield sleep(ctx.pollIntervalMs);
|
|
1231
|
+
}
|
|
1232
|
+
});
|
|
1233
|
+
}
|
|
1138
1234
|
function aliasTokenBlock(aliasToken) {
|
|
1139
1235
|
return (`\n Alias token (shown ONCE — save it now, it cannot be retrieved again):\n\n` +
|
|
1140
1236
|
` ${aliasToken}\n\n` +
|
|
@@ -9,9 +9,9 @@
|
|
|
9
9
|
* The endpoints are gated on the `agent_serve_mvp` Statsig gate and 404
|
|
10
10
|
* when it is off — the error mapping says so instead of "not found".
|
|
11
11
|
*/
|
|
12
|
-
export type DeploymentStatus = "pending" | "deploying" | "running" | "degraded" | "failed" | "stopping" | "stopped";
|
|
12
|
+
export type DeploymentStatus = "pending" | "deploying" | "running" | "degraded" | "failed" | "stopping" | "stopped" | "deleting";
|
|
13
13
|
/** Customer-safe deploy progress (no hosting phase / infra names). */
|
|
14
|
-
export type DeploymentProgress = "queued" | "preparing" | "creating" | "building" | "starting" | "finalizing" | "running" | "failed" | "stopping" | "stopped" | "degraded";
|
|
14
|
+
export type DeploymentProgress = "queued" | "preparing" | "creating" | "building" | "starting" | "finalizing" | "running" | "failed" | "stopping" | "stopped" | "deleting" | "degraded";
|
|
15
15
|
export declare const TERMINAL_DEPLOY_STATUSES: ReadonlySet<DeploymentStatus>;
|
|
16
16
|
/**
|
|
17
17
|
* What gets deployed. Today the control plane builds the engine itself from
|
|
@@ -133,6 +133,7 @@ export interface StopAccepted {
|
|
|
133
133
|
id: number;
|
|
134
134
|
status: string;
|
|
135
135
|
}
|
|
136
|
+
export type DeleteAccepted = StopAccepted;
|
|
136
137
|
/** One secret's metadata from the list endpoint — names only, never values. */
|
|
137
138
|
export interface SecretInfo {
|
|
138
139
|
name: string;
|
|
@@ -188,6 +189,10 @@ export declare class AgentServeDeployClient {
|
|
|
188
189
|
teamId: number;
|
|
189
190
|
slug: string;
|
|
190
191
|
}): Promise<StopAccepted>;
|
|
192
|
+
deleteDeployment(args: {
|
|
193
|
+
teamId: number;
|
|
194
|
+
slug: string;
|
|
195
|
+
}): Promise<DeleteAccepted>;
|
|
191
196
|
/** Returns the new alias token exactly once; the old one dies now. */
|
|
192
197
|
rotateAliasToken(args: {
|
|
193
198
|
teamId: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-client.d.ts","sourceRoot":"","sources":["../../src/internal/deploy-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,WAAW,GACX,SAAS,GACT,UAAU,GACV,QAAQ,GACR,UAAU,GACV,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy-client.d.ts","sourceRoot":"","sources":["../../src/internal/deploy-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH,MAAM,MAAM,gBAAgB,GACxB,SAAS,GACT,WAAW,GACX,SAAS,GACT,UAAU,GACV,QAAQ,GACR,UAAU,GACV,SAAS,GACT,UAAU,CAAC;AAEf,sEAAsE;AACtE,MAAM,MAAM,kBAAkB,GAC1B,QAAQ,GACR,WAAW,GACX,UAAU,GACV,UAAU,GACV,UAAU,GACV,YAAY,GACZ,SAAS,GACT,QAAQ,GACR,UAAU,GACV,SAAS,GACT,UAAU,GACV,UAAU,CAAC;AAEf,eAAO,MAAM,wBAAwB,EAAE,WAAW,CAAC,gBAAgB,CAKjE,CAAC;AAEH;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,SAAS,CAAC;IAChB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B,CAAC;AAIF,0EAA0E;AAC1E,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAKvE;AAED,6EAA6E;AAC7E,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOtE;AAED,qBAAa,cAAe,SAAQ,KAAK;IAGrC,QAAQ,CAAC,MAAM,EAAE,MAAM;IACvB,oEAAoE;IACpE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM;IAJrC,YACE,OAAO,EAAE,MAAM,EACN,MAAM,EAAE,MAAM;IACvB,oEAAoE;IAC3D,iBAAiB,CAAC,EAAE,MAAM,YAAA,EAIpC;CACF;AASD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,gBAAgB,CAAC;IACzB;;;OAGG;IACH,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,mEAAmE;IACnE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,sDAAsD;IACtD,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC1C;;;OAGG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4DAA4D;IAC5D,sBAAsB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,gEAAgE;AAChE,MAAM,WAAW,YAAY;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CACpC;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,GAC/C,MAAM,GAAG,SAAS,CAOpB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,cAAc,GAAG,YAAY,CAAC;AAE1C,+EAA+E;AAC/E,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;CACzC;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,UAAU,EAAE,yBAAyB,EAAE,CAAC;CACzC;AA6JD,MAAM,WAAW,6BAA6B;IAC5C,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IAEzC,YAAY,OAAO,EAAE,6BAA6B,EAMjD;IAED,yEAAyE;IACnE,MAAM,CAAC,IAAI,EAAE;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,YAAY,CAAC;KACtB,GAAG,OAAO,CAAC,cAAc,CAAC,CAyC1B;IAEK,eAAe,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAOrE;IAEK,aAAa,CAAC,IAAI,EAAE;QACxB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAO5B;IAEK,cAAc,CAAC,IAAI,EAAE;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,YAAY,CAAC,CAOxB;IAEK,gBAAgB,CAAC,IAAI,EAAE;QAC3B,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,cAAc,CAAC,CAO1B;IAED,sEAAsE;IAChE,gBAAgB,CAAC,IAAI,EAAE;QAC3B,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,MAAM,CAAC,CAOlB;IAED;;;;OAIG;IACG,UAAU,CAAC,IAAI,EAAE;QACrB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACjD,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA0BpB;IAED,gEAAgE;IAC1D,WAAW,CAAC,IAAI,EAAE;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAOxB;IAED,yDAAyD;IACnD,YAAY,CAAC,IAAI,EAAE;QACvB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,IAAI,CAAC,CAUhB;IAED;;;;OAIG;IACG,mBAAmB,CAAC,IAAI,EAAE;QAC9B,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,MAAM,CAAC,CAOlB;IAED;;;;;OAKG;IACG,gBAAgB,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsBxE;IAED,4DAA4D;IAC5D,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEpC;IAED;;;;;OAKG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;YAEa,OAAO;CAyCtB"}
|
|
@@ -100,6 +100,7 @@ const deploymentSchema = z.object({
|
|
|
100
100
|
"failed",
|
|
101
101
|
"stopping",
|
|
102
102
|
"stopped",
|
|
103
|
+
"deleting",
|
|
103
104
|
]),
|
|
104
105
|
progress: z
|
|
105
106
|
.enum([
|
|
@@ -113,6 +114,7 @@ const deploymentSchema = z.object({
|
|
|
113
114
|
"failed",
|
|
114
115
|
"stopping",
|
|
115
116
|
"stopped",
|
|
117
|
+
"deleting",
|
|
116
118
|
"degraded",
|
|
117
119
|
])
|
|
118
120
|
.optional(),
|
|
@@ -277,6 +279,16 @@ export class AgentServeDeployClient {
|
|
|
277
279
|
return stopAcceptedSchema.parse(raw);
|
|
278
280
|
});
|
|
279
281
|
}
|
|
282
|
+
deleteDeployment(args) {
|
|
283
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
284
|
+
const raw = yield this.request({
|
|
285
|
+
method: "DELETE",
|
|
286
|
+
path: `/internal/agent-serve/deployments/${encodeURIComponent(args.slug)}?teamId=${args.teamId}`,
|
|
287
|
+
context: { verb: "delete", slug: args.slug },
|
|
288
|
+
});
|
|
289
|
+
return stopAcceptedSchema.parse(raw);
|
|
290
|
+
});
|
|
291
|
+
}
|
|
280
292
|
/** Returns the new alias token exactly once; the old one dies now. */
|
|
281
293
|
rotateAliasToken(args) {
|
|
282
294
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/internal/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/internal/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAiBH,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,gBAAgB,EAUrB,KAAK,UAAU,EAuBhB,MAAM,aAAa,CAAC;AA8BrB,MAAM,WAAW,uBAAuB;IACtC,sDAAsD;IACtD,YAAY,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC3E;AAUD;;;;GAIG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CASrE;AAED,sEAAsE;AACtE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,aAAa,EAAE,CAAC,CA2B1B;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CAAC,CAAC,CA6BzD;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,uBAAuB,GAAG;IACjC,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CACtB,GACL,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CAAC,CAAC,CAgBzD;AAWD,iFAAiF;AACjF,eAAO,MAAM,cAAc,EAAE,GAAG,CAAC,MAAM,CAIrC,CAAC;AAEH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,YAAY,CAAC,CAmEvB;AAED,qEAAqE;AACrE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAElE;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,CAOnE;AAmuBD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAiB3E;AAgyBD,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,gBAAgB,CAwJnE"}
|
|
@@ -27,12 +27,11 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
27
27
|
};
|
|
28
28
|
import { readdir, readFile, stat } from "node:fs/promises";
|
|
29
29
|
import { basename, extname, isAbsolute, join, relative, resolve, } from "node:path";
|
|
30
|
-
import { pathToFileURL } from "node:url";
|
|
31
30
|
import { resolveABMaxPlaygroundSessions } from "../ab.js";
|
|
32
31
|
import { resolveArtifactsMax } from "../artifacts.js";
|
|
33
32
|
import { httpChannel } from "../channels.js";
|
|
34
33
|
import { cursorAccountServersHasMixedWildcard, DEFAULT_MODEL, isInlineStdioConnection, MAX_RUNNING_TURNS_LIMIT, normalizeCursorAccountServers, toPublicCloudInfo, } from "../types.js";
|
|
35
|
-
import { registerAuthoredModuleLoaders } from "./authored-loaders.js";
|
|
34
|
+
import { importAuthoredModule, registerAuthoredModuleLoaders, } from "./authored-loaders.js";
|
|
36
35
|
import { normalizePositiveInt } from "./bounded-int.js";
|
|
37
36
|
import { getDefinitionKind } from "./brand.js";
|
|
38
37
|
import { artifactBuiltinTool, builtinTools, TAG_ARTIFACT_TOOL_NAME, } from "./builtin-tools/index.js";
|
|
@@ -46,11 +45,6 @@ import { withIdentityPreamble } from "./workspace.js";
|
|
|
46
45
|
const MODULE_EXTENSIONS = new Set([".ts", ".mts", ".js", ".mjs"]);
|
|
47
46
|
const NAME_PATTERN = /^[A-Za-z0-9][A-Za-z0-9_-]*$/;
|
|
48
47
|
const SKILL_DESCRIPTION_FALLBACK = (name) => `Instructions for the ${name} skill.`;
|
|
49
|
-
function defaultImportModule(absolutePath) {
|
|
50
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
51
|
-
return (yield import(pathToFileURL(absolutePath).href));
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
48
|
/**
|
|
55
49
|
* True when `dir` looks like an agent project root: it has a nested `agent/`
|
|
56
50
|
* directory, or flat-layout markers (`agent.ts` / `instructions.md`) directly
|
|
@@ -199,7 +193,7 @@ export function loadAgentProject(dir_1) {
|
|
|
199
193
|
const ctx = {
|
|
200
194
|
rootDir,
|
|
201
195
|
diagnostics,
|
|
202
|
-
importModule: (_a = options.importModule) !== null && _a !== void 0 ? _a :
|
|
196
|
+
importModule: (_a = options.importModule) !== null && _a !== void 0 ? _a : importAuthoredModule,
|
|
203
197
|
};
|
|
204
198
|
const name = (_b = (yield readPackageName(rootDir))) !== null && _b !== void 0 ? _b : basename(rootDir);
|
|
205
199
|
const agent = yield loadAgent(ctx, agentDir, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eval-runner.d.ts","sourceRoot":"","sources":["../../src/internal/eval-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"eval-runner.d.ts","sourceRoot":"","sources":["../../src/internal/eval-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,6 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
18
18
|
};
|
|
19
19
|
import { readdir } from "node:fs/promises";
|
|
20
20
|
import { join, relative, resolve } from "node:path";
|
|
21
|
-
import { pathToFileURL } from "node:url";
|
|
22
21
|
import { computeVerdict, createAssertions, EvalAssertionRecorder, EvalRequireFailure, EvalSkipSignal, } from "../evals/assertions.js";
|
|
23
22
|
import { evaluateExpectation } from "../evals/expect.js";
|
|
24
23
|
import { EVAL_JUDGE_GRADERS, EvalJudgeUnavailableError, renderSubmission, } from "../evals/judge.js";
|
|
@@ -26,16 +25,12 @@ import { EVAL_ROOT_ENV } from "../evals/loaders.js";
|
|
|
26
25
|
import { combineReporters } from "../evals/reporters.js";
|
|
27
26
|
import { summarizeEvalResults } from "../evals/results.js";
|
|
28
27
|
import { EVAL_MAX_CONCURRENCY_LIMIT, expandEvalDefinition, expandSummarySuiteSelection, isEvalSummaryCase, matchesEvalIdFilter, normalizeEvalMaxConcurrency, } from "../evals.js";
|
|
28
|
+
import { importAuthoredModule } from "./authored-loaders.js";
|
|
29
29
|
import { isDefinitionOfKind } from "./brand.js";
|
|
30
30
|
import { callJudgeModel, EVAL_JUDGE_MODEL_ENV, resolveJudgeModel, } from "./eval-judge-model.js";
|
|
31
31
|
import { mapPool } from "./map-pool.js";
|
|
32
32
|
import { RunSessionTimeoutError, runSession } from "./run-client.js";
|
|
33
33
|
import { buildTrajectory } from "./trajectory.js";
|
|
34
|
-
function defaultImport(absolutePath) {
|
|
35
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
36
|
-
return (yield import(pathToFileURL(absolutePath).href));
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
34
|
function listEvalFiles(dir) {
|
|
40
35
|
return __awaiter(this, void 0, void 0, function* () {
|
|
41
36
|
const out = [];
|
|
@@ -70,7 +65,7 @@ function listEvalFiles(dir) {
|
|
|
70
65
|
});
|
|
71
66
|
}
|
|
72
67
|
export function discoverEvals(projectRoot_1) {
|
|
73
|
-
return __awaiter(this, arguments, void 0, function* (projectRoot, importModule =
|
|
68
|
+
return __awaiter(this, arguments, void 0, function* (projectRoot, importModule = importAuthoredModule) {
|
|
74
69
|
const root = resolve(projectRoot);
|
|
75
70
|
const evalsDir = join(root, "evals");
|
|
76
71
|
const files = yield listEvalFiles(evalsDir);
|
|
@@ -160,7 +155,7 @@ export function runDiscoveredEvals(options) {
|
|
|
160
155
|
config = options.discovered.config;
|
|
161
156
|
}
|
|
162
157
|
else {
|
|
163
|
-
const importModule = (_a = options.importModule) !== null && _a !== void 0 ? _a :
|
|
158
|
+
const importModule = (_a = options.importModule) !== null && _a !== void 0 ? _a : importAuthoredModule;
|
|
164
159
|
const discovered = yield discoverEvals(options.projectRoot, importModule);
|
|
165
160
|
config = discovered.config;
|
|
166
161
|
selected = filterDiscoveredEvals(discovered.evals, {
|
|
@@ -14,7 +14,7 @@ export interface LogsResponse {
|
|
|
14
14
|
entries: LogRingEntry[];
|
|
15
15
|
nextAfter: number;
|
|
16
16
|
}
|
|
17
|
-
export type LogsProgress = DeploymentProgress | "queued" | "preparing" | "creating" | "building" | "starting" | "finalizing" | "running" | "failed" | "stopping" | "stopped" | "degraded";
|
|
17
|
+
export type LogsProgress = DeploymentProgress | "queued" | "preparing" | "creating" | "building" | "starting" | "finalizing" | "running" | "failed" | "stopping" | "stopped" | "deleting" | "degraded";
|
|
18
18
|
/**
|
|
19
19
|
* Customer-facing line for the current deploy step. Prefer the live
|
|
20
20
|
* `statusMessage` from the API when present; otherwise the progress
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logs-client.d.ts","sourceRoot":"","sources":["../../src/internal/logs-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAW7E,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,YAAY,GACpB,kBAAkB,GAClB,QAAQ,GACR,WAAW,GACX,UAAU,GACV,UAAU,GACV,UAAU,GACV,YAAY,GACZ,SAAS,GACT,QAAQ,GACR,UAAU,GACV,SAAS,GACT,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"logs-client.d.ts","sourceRoot":"","sources":["../../src/internal/logs-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAW7E,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,YAAY,GACpB,kBAAkB,GAClB,QAAQ,GACR,WAAW,GACX,UAAU,GACV,UAAU,GACV,UAAU,GACV,YAAY,GACZ,SAAS,GACT,QAAQ,GACR,UAAU,GACV,SAAS,GACT,UAAU,GACV,UAAU,CAAC;AAiBf;;;;GAIG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,YAAY,EACtB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,EACzB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAC5B,MAAM,CAuBR;AAED,0EAA0E;AAC1E,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAa7D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B,GAAG,MAAM,CAiBT;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB,GAAG,OAAO,CAAC,YAAY,CAAC,CA0BxB;AAED,MAAM,WAAW,kBAAkB;IACjC,+DAA+D;IAC/D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iCAAiC;IACjC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,iCAAiC;IACjC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAChD,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC;QAC7B,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAClC,CAAC,CAAC;IACH,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoC5E"}
|
|
@@ -32,6 +32,7 @@ const PROGRESS_MESSAGES = {
|
|
|
32
32
|
failed: "Deploy failed",
|
|
33
33
|
stopping: "Stopping deployment…",
|
|
34
34
|
stopped: "Deployment stopped",
|
|
35
|
+
deleting: "Deleting deployment…",
|
|
35
36
|
degraded: "Deployment degraded",
|
|
36
37
|
};
|
|
37
38
|
/**
|
|
@@ -262,6 +263,8 @@ function resolveProgress(detail) {
|
|
|
262
263
|
return "stopping";
|
|
263
264
|
case "stopped":
|
|
264
265
|
return "stopped";
|
|
266
|
+
case "deleting":
|
|
267
|
+
return "deleting";
|
|
265
268
|
default:
|
|
266
269
|
return "queued";
|
|
267
270
|
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enter-to-restart for `serve` / `dev` on a TTY.
|
|
3
|
+
*
|
|
4
|
+
* In-process close+re-serve cannot reload every authored change: Node ESM
|
|
5
|
+
* caches transitive imports, and module-level state (tsx, singletons) survives.
|
|
6
|
+
* The parent process therefore supervises a worker and respawns it when the
|
|
7
|
+
* worker exits with {@link ENTER_RESTART_EXIT_CODE}.
|
|
8
|
+
*/
|
|
9
|
+
export declare const ENTER_RESTART_EXIT_CODE = 75;
|
|
10
|
+
export declare const SERVE_RESTART_WORKER_ENV = "AGENT_SERVE_RESTART_WORKER";
|
|
11
|
+
export interface ServeRestartProcess {
|
|
12
|
+
execPath: string;
|
|
13
|
+
execArgv: readonly string[];
|
|
14
|
+
argv: readonly string[];
|
|
15
|
+
env: NodeJS.ProcessEnv;
|
|
16
|
+
}
|
|
17
|
+
export interface ServeRestartSpawnPlan {
|
|
18
|
+
command: string;
|
|
19
|
+
args: string[];
|
|
20
|
+
env: NodeJS.ProcessEnv;
|
|
21
|
+
}
|
|
22
|
+
export interface ServeRestartWorkerChild {
|
|
23
|
+
once(event: "exit", listener: (code: number | null, signal: NodeJS.Signals | null) => void): void;
|
|
24
|
+
}
|
|
25
|
+
export declare function isServeRestartWorker(env?: NodeJS.ProcessEnv): boolean;
|
|
26
|
+
export declare function serveRestartSpawnPlan(proc: ServeRestartProcess): ServeRestartSpawnPlan;
|
|
27
|
+
export declare function shouldRespawnServeWorker(code: number | null, signal: NodeJS.Signals | null): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Run the TTY Enter-to-restart supervisor: spawn this CLI as a worker, and
|
|
30
|
+
* respawn whenever the worker exits asking for a restart. Other exits
|
|
31
|
+
* (Ctrl-C drain, crash, bind failure) propagate to the caller.
|
|
32
|
+
*/
|
|
33
|
+
export declare function runEnterRestartSupervisor(options: {
|
|
34
|
+
spawn: (command: string, args: string[], spawnOptions: {
|
|
35
|
+
stdio: "inherit";
|
|
36
|
+
env: NodeJS.ProcessEnv;
|
|
37
|
+
}) => ServeRestartWorkerChild;
|
|
38
|
+
proc?: ServeRestartProcess;
|
|
39
|
+
onRestart?: () => void;
|
|
40
|
+
installSignalGuards?: (handler: () => void) => () => void;
|
|
41
|
+
}): Promise<number>;
|
|
42
|
+
//# sourceMappingURL=serve-restart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serve-restart.d.ts","sourceRoot":"","sources":["../../src/internal/serve-restart.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAE1C,eAAO,MAAM,wBAAwB,+BAA+B,CAAC;AAErE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;CACxB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,CACF,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,KAAK,IAAI,GACrE,IAAI,CAAC;CACT;AAED,wBAAgB,oBAAoB,CAClC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAET;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,mBAAmB,GACxB,qBAAqB,CAMvB;AAED,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,GAC5B,OAAO,CAET;AAED;;;;GAIG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,EAAE;IACvD,KAAK,EAAE,CACL,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,YAAY,EAAE;QAAE,KAAK,EAAE,SAAS,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAA;KAAE,KACvD,uBAAuB,CAAC;IAC7B,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;CAC3D,GAAG,OAAO,CAAC,MAAM,CAAC,CA8BlB"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enter-to-restart for `serve` / `dev` on a TTY.
|
|
3
|
+
*
|
|
4
|
+
* In-process close+re-serve cannot reload every authored change: Node ESM
|
|
5
|
+
* caches transitive imports, and module-level state (tsx, singletons) survives.
|
|
6
|
+
* The parent process therefore supervises a worker and respawns it when the
|
|
7
|
+
* worker exits with {@link ENTER_RESTART_EXIT_CODE}.
|
|
8
|
+
*/
|
|
9
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
10
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
11
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
12
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
13
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
14
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
15
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
16
|
+
});
|
|
17
|
+
};
|
|
18
|
+
export const ENTER_RESTART_EXIT_CODE = 75;
|
|
19
|
+
export const SERVE_RESTART_WORKER_ENV = "AGENT_SERVE_RESTART_WORKER";
|
|
20
|
+
export function isServeRestartWorker(env = process.env) {
|
|
21
|
+
return env[SERVE_RESTART_WORKER_ENV] === "1";
|
|
22
|
+
}
|
|
23
|
+
export function serveRestartSpawnPlan(proc) {
|
|
24
|
+
return {
|
|
25
|
+
command: proc.execPath,
|
|
26
|
+
args: [...proc.execArgv, ...proc.argv.slice(1)],
|
|
27
|
+
env: Object.assign(Object.assign({}, proc.env), { [SERVE_RESTART_WORKER_ENV]: "1" }),
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export function shouldRespawnServeWorker(code, signal) {
|
|
31
|
+
return signal === null && code === ENTER_RESTART_EXIT_CODE;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Run the TTY Enter-to-restart supervisor: spawn this CLI as a worker, and
|
|
35
|
+
* respawn whenever the worker exits asking for a restart. Other exits
|
|
36
|
+
* (Ctrl-C drain, crash, bind failure) propagate to the caller.
|
|
37
|
+
*/
|
|
38
|
+
export function runEnterRestartSupervisor(options) {
|
|
39
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
var _a;
|
|
41
|
+
var _b, _c;
|
|
42
|
+
const proc = (_b = options.proc) !== null && _b !== void 0 ? _b : {
|
|
43
|
+
execPath: process.execPath,
|
|
44
|
+
execArgv: process.execArgv,
|
|
45
|
+
argv: process.argv,
|
|
46
|
+
env: process.env,
|
|
47
|
+
};
|
|
48
|
+
const plan = serveRestartSpawnPlan(proc);
|
|
49
|
+
const uninstallSignals = ((_c = options.installSignalGuards) !== null && _c !== void 0 ? _c : installDefaultSignalGuards)(() => undefined);
|
|
50
|
+
try {
|
|
51
|
+
for (;;) {
|
|
52
|
+
const child = options.spawn(plan.command, plan.args, {
|
|
53
|
+
stdio: "inherit",
|
|
54
|
+
env: plan.env,
|
|
55
|
+
});
|
|
56
|
+
const { code, signal } = yield waitForExit(child);
|
|
57
|
+
if (!shouldRespawnServeWorker(code, signal)) {
|
|
58
|
+
if (signal !== null) {
|
|
59
|
+
return 1;
|
|
60
|
+
}
|
|
61
|
+
return code !== null && code !== void 0 ? code : 1;
|
|
62
|
+
}
|
|
63
|
+
(_a = options.onRestart) === null || _a === void 0 ? void 0 : _a.call(options);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
finally {
|
|
67
|
+
uninstallSignals();
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
function waitForExit(child) {
|
|
72
|
+
return new Promise((resolve) => {
|
|
73
|
+
child.once("exit", (code, signal) => {
|
|
74
|
+
resolve({ code, signal });
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
function installDefaultSignalGuards(handler) {
|
|
79
|
+
process.on("SIGINT", handler);
|
|
80
|
+
process.on("SIGTERM", handler);
|
|
81
|
+
return () => {
|
|
82
|
+
process.off("SIGINT", handler);
|
|
83
|
+
process.off("SIGTERM", handler);
|
|
84
|
+
};
|
|
85
|
+
}
|