@cursor/july 0.1.88 → 0.1.89
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 +1 -1
- package/dist/internal/advertise-tools.d.ts.map +1 -1
- package/dist/internal/advertise-tools.js +1 -1
- package/dist/internal/cli-ax.js +1 -1
- package/dist/internal/cli-deploy.d.ts +3 -2
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +84 -9
- package/dist/internal/cursor/account-mcp.d.ts.map +1 -1
- package/dist/internal/cursor/account-mcp.js +8 -4
- package/dist/internal/cursor/backend-client.d.ts +8 -0
- package/dist/internal/cursor/backend-client.d.ts.map +1 -1
- package/dist/internal/cursor/backend-client.js +23 -1
- package/dist/internal/deploy-client.d.ts +42 -1
- package/dist/internal/deploy-client.d.ts.map +1 -1
- package/dist/internal/deploy-client.js +70 -2
- package/dist/internal/mcp-endpoint.js +2 -1
- package/dist/internal/session-engine.d.ts +9 -2
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +85 -28
- package/dist/internal/tool-policy.d.ts +33 -1
- package/dist/internal/tool-policy.d.ts.map +1 -1
- package/dist/internal/tool-policy.js +53 -0
- package/dist/playground/assets/{index-Bqn91tW4.js → index-BmiIjFlM.js} +45 -45
- package/dist/playground/assets/index-DQGZnAI0.css +1 -0
- package/dist/playground/index.html +2 -2
- package/dist/types.d.ts +22 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/skills/debug/SKILL.md +1 -2
- package/skills/framework-map/SKILL.md +1 -2
- package/src/bin/agent-serve.ts +1 -1
- package/src/internal/advertise-tools.ts +1 -0
- package/src/internal/cli-ax.ts +1 -1
- package/src/internal/cli-deploy.ts +123 -15
- package/src/internal/cursor/account-mcp.ts +15 -1
- package/src/internal/cursor/backend-client.ts +33 -0
- package/src/internal/deploy-client.ts +122 -2
- package/src/internal/mcp-endpoint.ts +2 -1
- package/src/internal/session-engine.ts +86 -6
- package/src/internal/tool-policy.ts +80 -1
- package/src/types.ts +19 -0
- package/dist/playground/assets/index-C0_5hOsf.css +0 -1
package/dist/bin/agent-serve.js
CHANGED
|
@@ -157,7 +157,7 @@ Commands:
|
|
|
157
157
|
(also: npx @cursor/july docs). No agent project required.
|
|
158
158
|
--print skips opening a browser. Ctrl-C stops the server.
|
|
159
159
|
run One-shot create→test loop: ephemeral server + JSON trajectory.
|
|
160
|
-
Writes a single events.ndjson trace (
|
|
160
|
+
Writes a single events.ndjson trace (summarize with trajectory).
|
|
161
161
|
Streams tool calls and reply text to stderr when stderr is a TTY.
|
|
162
162
|
Pass --prod to hit the hosted deployment instead of a local server.
|
|
163
163
|
trajectory Summarize an events.ndjson file into a trajectory.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"advertise-tools.d.ts","sourceRoot":"","sources":["../../src/internal/advertise-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EACV,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EACjB,eAAe,EAEf,aAAa,EACb,WAAW,EAEZ,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAMnD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAC9D,QAAQ,CACN,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9B,MAAM,CAAC,UAAU,EAAE,oBAAoB,GAAG,aAAa,CAAC;CACzD;AAED;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,EAAE,MAAiC,CAAC;AAO7E,2DAA2D;AAC3D,MAAM,WAAW,oBAAoB;IACnC,SAAS,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IACxC,QAAQ,CACN,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,0DAA0D;IAC1D,SAAS,CAAC,EAAE,CACV,UAAU,EAAE,oBAAoB,EAChC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,gBAAgB,KACtB,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACpC,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CA4B5B;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,oBAAoB,EAChC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,oBAAoB,CAAC,CAwB/B;
|
|
1
|
+
{"version":3,"file":"advertise-tools.d.ts","sourceRoot":"","sources":["../../src/internal/advertise-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EACV,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EACjB,eAAe,EAEf,aAAa,EACb,WAAW,EAEZ,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAMnD;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IAC9D,QAAQ,CACN,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9B,MAAM,CAAC,UAAU,EAAE,oBAAoB,GAAG,aAAa,CAAC;CACzD;AAED;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,EAAE,MAAiC,CAAC;AAO7E,2DAA2D;AAC3D,MAAM,WAAW,oBAAoB;IACnC,SAAS,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IACxC,QAAQ,CACN,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,gBAAgB,CAAC;IAC1B,0DAA0D;IAC1D,SAAS,CAAC,EAAE,CACV,UAAU,EAAE,oBAAoB,EAChC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,gBAAgB,KACtB,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACpC,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CA4B5B;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,oBAAoB,EAChC,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,oBAAoB,CAAC,CAwB/B;AA0FD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,iBAAiB,GACxB,MAAM,CAkBR"}
|
|
@@ -160,7 +160,7 @@ function toDiscoveredTool(connection, info, exposedName, source) {
|
|
|
160
160
|
return Object.assign(Object.assign(Object.assign(Object.assign({ name: exposedName, description,
|
|
161
161
|
inputSchema }, (outputSchema === undefined ? {} : { outputSchema })), { execution: "server", needsApproval: false }), (info.annotations === undefined
|
|
162
162
|
? {}
|
|
163
|
-
: { annotations: info.annotations })), { definition });
|
|
163
|
+
: { annotations: info.annotations })), { advertised: true, definition });
|
|
164
164
|
}
|
|
165
165
|
/**
|
|
166
166
|
* Render an MCP call result for the model: text parts joined, non-text
|
package/dist/internal/cli-ax.js
CHANGED
|
@@ -457,7 +457,7 @@ export function cmdRun(options) {
|
|
|
457
457
|
: playgroundUrl !== null
|
|
458
458
|
? `Open ${playgroundUrl}`
|
|
459
459
|
: eventsPath !== undefined
|
|
460
|
-
?
|
|
460
|
+
? `${CLI_COMMAND_NAME} trajectory --events ${eventsPath}`
|
|
461
461
|
: null,
|
|
462
462
|
trajectory: result.trajectory,
|
|
463
463
|
}, null, 2));
|
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
*
|
|
6
6
|
* All intelligence is server-side (backend/server/src/agentServe/); these
|
|
7
7
|
* handlers resolve parameters (credentials, team, slug, the project's
|
|
8
|
-
* `hosting` manifest block), call the
|
|
9
|
-
* `deploy-client.ts`, poll status, and
|
|
8
|
+
* `hosting` / `architecture` manifest block), call the v1 agent-serve or
|
|
9
|
+
* v2 agentkit management API through `deploy-client.ts`, poll status, and
|
|
10
|
+
* render.
|
|
10
11
|
*/
|
|
11
12
|
import { AgentServeDeployClient } from "./deploy-client.js";
|
|
12
13
|
import { type GitRunner } from "./deploy-source.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-deploy.d.ts","sourceRoot":"","sources":["../../src/internal/cli-deploy.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cli-deploy.d.ts","sourceRoot":"","sources":["../../src/internal/cli-deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
*
|
|
6
6
|
* All intelligence is server-side (backend/server/src/agentServe/); these
|
|
7
7
|
* handlers resolve parameters (credentials, team, slug, the project's
|
|
8
|
-
* `hosting` manifest block), call the
|
|
9
|
-
* `deploy-client.ts`, poll status, and
|
|
8
|
+
* `hosting` / `architecture` manifest block), call the v1 agent-serve or
|
|
9
|
+
* v2 agentkit management API through `deploy-client.ts`, poll status, and
|
|
10
|
+
* render.
|
|
10
11
|
*/
|
|
11
12
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
12
13
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
@@ -24,7 +25,7 @@ import { CursorBackendClient } from "./cursor/backend-client.js";
|
|
|
24
25
|
import { cursorExternalApiUrl, resolveApiKey, SIGN_IN_HINT, } from "./cursor/credentials.js";
|
|
25
26
|
import { authorizeCursorAccountConnectors } from "./cursor-account-mcp-auth.js";
|
|
26
27
|
import { readDeployTemplate } from "./cursor-agent-template.js";
|
|
27
|
-
import { AgentServeDeployClient, DeployApiError, deploymentServiceAccountId, slugFromDirectoryName, TERMINAL_DEPLOY_STATUSES, validateDeploymentSlug, } from "./deploy-client.js";
|
|
28
|
+
import { AgentServeDeployClient, DeployApiError, deploymentServiceAccountId, slugFromDirectoryName, TERMINAL_AGENTKIT_DEPLOY_STATUSES, TERMINAL_DEPLOY_STATUSES, validateDeploymentSlug, } from "./deploy-client.js";
|
|
28
29
|
import { inferDeployGitSource } from "./deploy-source.js";
|
|
29
30
|
import { isAgentProjectDir, listChildAgentDirs, loadAgentProject, } from "./discovery.js";
|
|
30
31
|
import { CLI_COMMAND_NAME as CLI } from "./distribution.js";
|
|
@@ -430,6 +431,18 @@ function deployOne(ctx, options, target, extras) {
|
|
|
430
431
|
// without the alias token before the deploy is accepted.
|
|
431
432
|
ctx.err(` public: ${publicRoutePaths.join(", ")} (served WITHOUT the alias token — these channels authenticate requests themselves)\n`);
|
|
432
433
|
}
|
|
434
|
+
if ((manifest === null || manifest === void 0 ? void 0 : manifest.architecture) === "v2") {
|
|
435
|
+
if (!ctx.json) {
|
|
436
|
+
ctx.err(" architecture: v2\n");
|
|
437
|
+
}
|
|
438
|
+
return deployOneAgentkit(ctx, extras, {
|
|
439
|
+
slug,
|
|
440
|
+
gitRepoUrl,
|
|
441
|
+
gitRef,
|
|
442
|
+
agentPath,
|
|
443
|
+
repositories: options.cursorEventsRepos,
|
|
444
|
+
});
|
|
445
|
+
}
|
|
433
446
|
// Today's only source shape: the control plane builds from a git ref.
|
|
434
447
|
// See DeploySource for the artifact seam.
|
|
435
448
|
const source = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ kind: "git-ref", gitRepoUrl }, (gitRef === undefined ? {} : { gitRef })), (agentPath === undefined ? {} : { agentPath })), (options.cursorEventsRepos === undefined ||
|
|
@@ -468,7 +481,7 @@ function deployOne(ctx, options, target, extras) {
|
|
|
468
481
|
}
|
|
469
482
|
let detail;
|
|
470
483
|
try {
|
|
471
|
-
detail = yield pollUntil(ctx, slug, TERMINAL_DEPLOY_STATUSES);
|
|
484
|
+
detail = yield pollUntil(ctx, slug, TERMINAL_DEPLOY_STATUSES, () => ctx.client.getDeployment({ teamId: ctx.teamId, slug }));
|
|
472
485
|
}
|
|
473
486
|
catch (error) {
|
|
474
487
|
return renderApiError(error, ctx.err);
|
|
@@ -513,6 +526,69 @@ function deployOne(ctx, options, target, extras) {
|
|
|
513
526
|
return 0;
|
|
514
527
|
});
|
|
515
528
|
}
|
|
529
|
+
/**
|
|
530
|
+
* `architecture: "v2"` deploy: POST `/internal/agentkit/deployments` and
|
|
531
|
+
* poll the matching GET. The v2 accept path starts freeze bake; it does
|
|
532
|
+
* not mint an engine alias or alias token.
|
|
533
|
+
*/
|
|
534
|
+
function deployOneAgentkit(ctx, extras, args) {
|
|
535
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
536
|
+
const { slug } = args;
|
|
537
|
+
let accepted;
|
|
538
|
+
try {
|
|
539
|
+
accepted = yield ctx.client.deployAgentkit({
|
|
540
|
+
teamId: ctx.teamId,
|
|
541
|
+
slug,
|
|
542
|
+
gitRepoUrl: args.gitRepoUrl,
|
|
543
|
+
gitRef: args.gitRef,
|
|
544
|
+
agentPath: args.agentPath,
|
|
545
|
+
repositories: args.repositories,
|
|
546
|
+
});
|
|
547
|
+
}
|
|
548
|
+
catch (error) {
|
|
549
|
+
return renderApiError(error, ctx.err);
|
|
550
|
+
}
|
|
551
|
+
if (ctx.noWait) {
|
|
552
|
+
if ((extras === null || extras === void 0 ? void 0 : extras.jsonCollect) !== undefined) {
|
|
553
|
+
extras.jsonCollect.push(accepted);
|
|
554
|
+
}
|
|
555
|
+
else if (ctx.json) {
|
|
556
|
+
ctx.out(`${JSON.stringify(accepted, null, 2)}\n`);
|
|
557
|
+
}
|
|
558
|
+
else {
|
|
559
|
+
ctx.out(`Deploy accepted: ${slug} (team ${ctx.teamId}, v2)\n` +
|
|
560
|
+
` application: ${accepted.applicationId}\n` +
|
|
561
|
+
` release: ${accepted.releaseId}\n`);
|
|
562
|
+
}
|
|
563
|
+
return 0;
|
|
564
|
+
}
|
|
565
|
+
let detail;
|
|
566
|
+
try {
|
|
567
|
+
detail = yield pollUntil(ctx, slug, TERMINAL_AGENTKIT_DEPLOY_STATUSES, () => ctx.client.getAgentkitDeploy({ teamId: ctx.teamId, slug }));
|
|
568
|
+
}
|
|
569
|
+
catch (error) {
|
|
570
|
+
return renderApiError(error, ctx.err);
|
|
571
|
+
}
|
|
572
|
+
if ((extras === null || extras === void 0 ? void 0 : extras.jsonCollect) !== undefined) {
|
|
573
|
+
extras.jsonCollect.push(detail);
|
|
574
|
+
return detail.status === "running" ? 0 : 1;
|
|
575
|
+
}
|
|
576
|
+
if (ctx.json) {
|
|
577
|
+
ctx.out(`${JSON.stringify(detail, null, 2)}\n`);
|
|
578
|
+
return detail.status === "running" ? 0 : 1;
|
|
579
|
+
}
|
|
580
|
+
if (detail.status !== "running") {
|
|
581
|
+
ctx.err(`Deployment ${slug} ended ${detail.status}\n`);
|
|
582
|
+
return 1;
|
|
583
|
+
}
|
|
584
|
+
ctx.out(`Deployed ${slug} (team ${ctx.teamId})\n` +
|
|
585
|
+
` status: running\n` +
|
|
586
|
+
` architecture: v2\n` +
|
|
587
|
+
` application: ${detail.applicationId}\n` +
|
|
588
|
+
` release: ${detail.releaseId}\n`);
|
|
589
|
+
return 0;
|
|
590
|
+
});
|
|
591
|
+
}
|
|
516
592
|
/**
|
|
517
593
|
* Post-deploy connector authorization for `cursorAccount` connections: the
|
|
518
594
|
* agent's connectors execute with tokens owned by the deployment's service
|
|
@@ -587,6 +663,7 @@ function readDeployManifest(dir) {
|
|
|
587
663
|
const project = yield loadAgentProject(dir);
|
|
588
664
|
return {
|
|
589
665
|
hosting: project.agent.hosting,
|
|
666
|
+
architecture: project.agent.architecture,
|
|
590
667
|
cursorAccountConnections: project.agent.connections.flatMap((connection) => isCursorAccountTransport(connection.transport)
|
|
591
668
|
? [{ name: connection.name, servers: connection.transport.servers }]
|
|
592
669
|
: []),
|
|
@@ -769,7 +846,7 @@ export function cmdStop(slug, options) {
|
|
|
769
846
|
}
|
|
770
847
|
let detail;
|
|
771
848
|
try {
|
|
772
|
-
detail = yield pollUntil(ctx, slug, new Set(["stopped"]));
|
|
849
|
+
detail = yield pollUntil(ctx, slug, new Set(["stopped"]), () => ctx.client.getDeployment({ teamId: ctx.teamId, slug }));
|
|
773
850
|
}
|
|
774
851
|
catch (error) {
|
|
775
852
|
return renderApiError(error, ctx.err);
|
|
@@ -1132,7 +1209,7 @@ export function createLineReader(stream) {
|
|
|
1132
1209
|
* status so create → checkout → start is visible. Throws DeployApiError
|
|
1133
1210
|
* on request failures or timeout.
|
|
1134
1211
|
*/
|
|
1135
|
-
function pollUntil(ctx, slug, terminal) {
|
|
1212
|
+
function pollUntil(ctx, slug, terminal, fetchDetail) {
|
|
1136
1213
|
return __awaiter(this, void 0, void 0, function* () {
|
|
1137
1214
|
const startedAt = Date.now();
|
|
1138
1215
|
const tty = process.stderr.isTTY === true;
|
|
@@ -1159,9 +1236,7 @@ function pollUntil(ctx, slug, terminal) {
|
|
|
1159
1236
|
}
|
|
1160
1237
|
};
|
|
1161
1238
|
for (;;) {
|
|
1162
|
-
const detail = yield
|
|
1163
|
-
.getDeployment({ teamId: ctx.teamId, slug })
|
|
1164
|
-
.catch((error) => {
|
|
1239
|
+
const detail = yield fetchDetail().catch((error) => {
|
|
1165
1240
|
finishProgressLine();
|
|
1166
1241
|
throw error;
|
|
1167
1242
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-mcp.d.ts","sourceRoot":"","sources":["../../../src/internal/cursor/account-mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AASH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"account-mcp.d.ts","sourceRoot":"","sources":["../../../src/internal/cursor/account-mcp.ts"],"names":[],"mappings":"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"}
|
|
@@ -201,9 +201,11 @@ export class CursorAccountMcpBridge {
|
|
|
201
201
|
server.setRequestHandler(ListToolsRequestSchema, () => __awaiter(this, void 0, void 0, function* () {
|
|
202
202
|
const catalog = yield this.getCatalog(ref);
|
|
203
203
|
return {
|
|
204
|
-
tools: catalog.tools.map((tool) => (Object.assign({ name: tool.exposedName, description: tool.description, inputSchema: tool.inputSchema }, (tool.outputSchema === undefined
|
|
204
|
+
tools: catalog.tools.map((tool) => (Object.assign(Object.assign({ name: tool.exposedName, description: tool.description, inputSchema: tool.inputSchema }, (tool.outputSchema === undefined
|
|
205
205
|
? {}
|
|
206
|
-
: { outputSchema: tool.outputSchema }))
|
|
206
|
+
: { outputSchema: tool.outputSchema })), (tool.annotations === undefined
|
|
207
|
+
? {}
|
|
208
|
+
: { annotations: tool.annotations })))),
|
|
207
209
|
};
|
|
208
210
|
}));
|
|
209
211
|
server.setRequestHandler(CallToolRequestSchema, (request) => __awaiter(this, void 0, void 0, function* () {
|
|
@@ -347,9 +349,11 @@ function buildCatalog(servers) {
|
|
|
347
349
|
suffixIndex++;
|
|
348
350
|
exposedName = suffixMcpToolName(base, suffixIndex);
|
|
349
351
|
}
|
|
350
|
-
const entry = Object.assign({ exposedName, backendName: tool.name, serverIdentifier, description: tool.description, inputSchema: tool.inputSchema }, (tool.outputSchema === undefined
|
|
352
|
+
const entry = Object.assign(Object.assign({ exposedName, backendName: tool.name, serverIdentifier, description: tool.description, inputSchema: tool.inputSchema }, (tool.outputSchema === undefined
|
|
353
|
+
? {}
|
|
354
|
+
: { outputSchema: tool.outputSchema })), (tool.annotations === undefined
|
|
351
355
|
? {}
|
|
352
|
-
: {
|
|
356
|
+
: { annotations: tool.annotations }));
|
|
353
357
|
tools.push(entry);
|
|
354
358
|
byExposedName.set(entry.exposedName, entry);
|
|
355
359
|
});
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
* cached until shortly before expiry and re-exchanged once on a 401.
|
|
14
14
|
*/
|
|
15
15
|
import { z } from "zod";
|
|
16
|
+
import type { McpToolAnnotations } from "../../types.js";
|
|
16
17
|
export declare class CursorBackendError extends Error {
|
|
17
18
|
readonly status?: number | undefined;
|
|
18
19
|
readonly retryAfterMs?: number | undefined;
|
|
@@ -57,6 +58,13 @@ export interface AccountMcpTool {
|
|
|
57
58
|
* matching the optional MCP `Tool.outputSchema` field.
|
|
58
59
|
*/
|
|
59
60
|
outputSchema?: Record<string, unknown>;
|
|
61
|
+
/**
|
|
62
|
+
* MCP spec tool annotations as the connector's server reported them,
|
|
63
|
+
* bounded to the spec fields at parse time. Absent stays absent —
|
|
64
|
+
* untrusted hints, and the fail-closed signal for consumers that classify
|
|
65
|
+
* on them (dry-run effect resolution).
|
|
66
|
+
*/
|
|
67
|
+
annotations?: McpToolAnnotations;
|
|
60
68
|
}
|
|
61
69
|
export interface AccountMcpServer {
|
|
62
70
|
serverIdentifier: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backend-client.d.ts","sourceRoot":"","sources":["../../../src/internal/cursor/backend-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"backend-client.d.ts","sourceRoot":"","sources":["../../../src/internal/cursor/backend-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
23
23
|
};
|
|
24
24
|
import { randomUUID } from "node:crypto";
|
|
25
25
|
import { z } from "zod";
|
|
26
|
+
import { boundedToolAnnotations } from "../mcp-host.js";
|
|
26
27
|
const CLIENT_VERSION = "agent-serve-0.1.0";
|
|
27
28
|
const EXCHANGE_PATH = "/auth/exchange_user_api_key";
|
|
28
29
|
const SERVICE_PREFIX = "/aiserver.v1.DashboardService";
|
|
@@ -68,6 +69,8 @@ const mcpToolSchema = z.object({
|
|
|
68
69
|
inputSchema: z.unknown().optional(),
|
|
69
70
|
/** Flat JSON-string output schema (`output_schema_json` on the proto). */
|
|
70
71
|
outputSchemaJson: z.string().optional(),
|
|
72
|
+
/** Flat JSON-string MCP annotations (`annotations_json` on the proto). */
|
|
73
|
+
annotationsJson: z.string().optional(),
|
|
71
74
|
});
|
|
72
75
|
const getAvailableMcpServersResponseSchema = z.object({
|
|
73
76
|
servers: z
|
|
@@ -208,7 +211,8 @@ export class CursorBackendClient {
|
|
|
208
211
|
tools: ((_a = server.tools) !== null && _a !== void 0 ? _a : []).map((tool) => {
|
|
209
212
|
var _a;
|
|
210
213
|
const outputSchema = parseOutputSchemaJson(tool.outputSchemaJson);
|
|
211
|
-
|
|
214
|
+
const annotations = parseAnnotationsJson(tool.annotationsJson);
|
|
215
|
+
return Object.assign(Object.assign({ name: tool.name, description: (_a = tool.description) !== null && _a !== void 0 ? _a : "", inputSchema: normalizeInputSchema(tool.inputSchema) }, (outputSchema === undefined ? {} : { outputSchema })), (annotations === undefined ? {} : { annotations }));
|
|
212
216
|
}),
|
|
213
217
|
}); });
|
|
214
218
|
});
|
|
@@ -521,6 +525,24 @@ function parseOutputSchemaJson(outputSchemaJson) {
|
|
|
521
525
|
? parsed
|
|
522
526
|
: undefined;
|
|
523
527
|
}
|
|
528
|
+
/**
|
|
529
|
+
* Parse the flat JSON-string annotations off the wire and bound them to the
|
|
530
|
+
* MCP-spec fields. Malformed or non-object payloads behave like absent ones,
|
|
531
|
+
* so readers fail closed.
|
|
532
|
+
*/
|
|
533
|
+
function parseAnnotationsJson(annotationsJson) {
|
|
534
|
+
if (annotationsJson === undefined) {
|
|
535
|
+
return undefined;
|
|
536
|
+
}
|
|
537
|
+
let parsed;
|
|
538
|
+
try {
|
|
539
|
+
parsed = JSON.parse(annotationsJson);
|
|
540
|
+
}
|
|
541
|
+
catch (_a) {
|
|
542
|
+
return undefined;
|
|
543
|
+
}
|
|
544
|
+
return boundedToolAnnotations(parsed);
|
|
545
|
+
}
|
|
524
546
|
function toCallResult(result) {
|
|
525
547
|
var _a;
|
|
526
548
|
if (result.success !== undefined) {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Thin client for the Agent Serve deployment management API
|
|
3
|
-
* (`/internal/agent-serve/deployments` on the Cursor backend)
|
|
3
|
+
* (`/internal/agent-serve/deployments` on the Cursor backend) and the v2
|
|
4
|
+
* AgentSDK accept path (`/internal/agentkit/deployments`). Pure
|
|
4
5
|
* request/response + error mapping — no console I/O, no polling loops;
|
|
5
6
|
* rendering lives in `cli-deploy.ts`.
|
|
6
7
|
*
|
|
@@ -131,6 +132,29 @@ export interface StopAccepted {
|
|
|
131
132
|
status: string;
|
|
132
133
|
}
|
|
133
134
|
export type DeleteAccepted = StopAccepted;
|
|
135
|
+
/**
|
|
136
|
+
* `POST /internal/agentkit/deployments` 202 body. Distinct from v1
|
|
137
|
+
* {@link DeployAccepted}: the v2 control plane returns catalog ids, not
|
|
138
|
+
* an engine alias or one-shot alias token.
|
|
139
|
+
*/
|
|
140
|
+
export interface AgentkitDeployAccepted {
|
|
141
|
+
applicationId: string;
|
|
142
|
+
releaseId: string;
|
|
143
|
+
status: string;
|
|
144
|
+
}
|
|
145
|
+
/** Customer-visible v2 deploy status (`GET /internal/agentkit/deployments/:slug`). */
|
|
146
|
+
export type AgentkitCustomerStatus = "pending" | "deploying" | "running" | "failed" | "stopped";
|
|
147
|
+
export type AgentkitDeployProgress = "queued" | "creating" | "building" | "starting" | "finalizing" | "running" | "failed" | "stopped";
|
|
148
|
+
export interface AgentkitDeployStatus {
|
|
149
|
+
applicationId: string;
|
|
150
|
+
releaseId: string;
|
|
151
|
+
slug: string;
|
|
152
|
+
teamId: number;
|
|
153
|
+
status: AgentkitCustomerStatus;
|
|
154
|
+
progress: AgentkitDeployProgress;
|
|
155
|
+
statusMessage: string | null;
|
|
156
|
+
}
|
|
157
|
+
export declare const TERMINAL_AGENTKIT_DEPLOY_STATUSES: ReadonlySet<AgentkitCustomerStatus>;
|
|
134
158
|
/** One secret's metadata from the list endpoint — names only, never values. */
|
|
135
159
|
export interface SecretInfo {
|
|
136
160
|
name: string;
|
|
@@ -176,6 +200,23 @@ export declare class AgentServeDeployClient {
|
|
|
176
200
|
source: DeploySource;
|
|
177
201
|
template?: string;
|
|
178
202
|
}): Promise<DeployAccepted>;
|
|
203
|
+
/**
|
|
204
|
+
* Create or redeploy onto the v2 control plane
|
|
205
|
+
* (`POST /internal/agentkit/deployments`). 202 means accepted; poll
|
|
206
|
+
* {@link getAgentkitDeploy} until a terminal status.
|
|
207
|
+
*/
|
|
208
|
+
deployAgentkit(args: {
|
|
209
|
+
teamId: number;
|
|
210
|
+
slug: string;
|
|
211
|
+
gitRepoUrl: string;
|
|
212
|
+
gitRef?: string;
|
|
213
|
+
agentPath?: string;
|
|
214
|
+
repositories?: string[];
|
|
215
|
+
}): Promise<AgentkitDeployAccepted>;
|
|
216
|
+
getAgentkitDeploy(args: {
|
|
217
|
+
teamId: number;
|
|
218
|
+
slug: string;
|
|
219
|
+
}): Promise<AgentkitDeployStatus>;
|
|
179
220
|
listDeployments(args: {
|
|
180
221
|
teamId: number;
|
|
181
222
|
}): Promise<Deployment[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-client.d.ts","sourceRoot":"","sources":["../../src/internal/deploy-client.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"deploy-client.d.ts","sourceRoot":"","sources":["../../src/internal/deploy-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;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,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC;;;OAGG;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;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,sFAAsF;AACtF,MAAM,MAAM,sBAAsB,GAC9B,SAAS,GACT,WAAW,GACX,SAAS,GACT,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,MAAM,sBAAsB,GAC9B,QAAQ,GACR,UAAU,GACV,UAAU,GACV,UAAU,GACV,YAAY,GACZ,SAAS,GACT,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,sBAAsB,CAAC;IAC/B,QAAQ,EAAE,sBAAsB,CAAC;IACjC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,eAAO,MAAM,iCAAiC,EAAE,WAAW,CAAC,sBAAsB,CACvC,CAAC;AAE5C,+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;AA0LD,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;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,cAAc,CAAC,CAyD1B;IAED;;;;OAIG;IACG,cAAc,CAAC,IAAI,EAAE;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAsBlC;IAEK,iBAAiB,CAAC,IAAI,EAAE;QAC5B,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAOhC;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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Thin client for the Agent Serve deployment management API
|
|
3
|
-
* (`/internal/agent-serve/deployments` on the Cursor backend)
|
|
3
|
+
* (`/internal/agent-serve/deployments` on the Cursor backend) and the v2
|
|
4
|
+
* AgentSDK accept path (`/internal/agentkit/deployments`). Pure
|
|
4
5
|
* request/response + error mapping — no console I/O, no polling loops;
|
|
5
6
|
* rendering lives in `cli-deploy.ts`.
|
|
6
7
|
*
|
|
@@ -66,6 +67,7 @@ export function deploymentServiceAccountId(deployment) {
|
|
|
66
67
|
const id = String(raw).trim();
|
|
67
68
|
return id === "" ? undefined : id;
|
|
68
69
|
}
|
|
70
|
+
export const TERMINAL_AGENTKIT_DEPLOY_STATUSES = new Set(["running", "failed", "stopped"]);
|
|
69
71
|
// All response schemas are `.passthrough()`: the backend keeps growing the
|
|
70
72
|
// deployment payload (serviceAccountId, egressAllowedDomains, secret
|
|
71
73
|
// metadata, ...) and unknown fields must flow through untouched — both so
|
|
@@ -83,6 +85,33 @@ const deployAcceptedSchema = z
|
|
|
83
85
|
aliasToken: z.string().optional(),
|
|
84
86
|
})
|
|
85
87
|
.passthrough();
|
|
88
|
+
const agentkitDeployAcceptedSchema = z
|
|
89
|
+
.object({
|
|
90
|
+
applicationId: z.string().min(1),
|
|
91
|
+
releaseId: z.string().min(1),
|
|
92
|
+
status: z.string(),
|
|
93
|
+
})
|
|
94
|
+
.passthrough();
|
|
95
|
+
const agentkitDeployStatusSchema = z
|
|
96
|
+
.object({
|
|
97
|
+
applicationId: z.string().min(1),
|
|
98
|
+
releaseId: z.string().min(1),
|
|
99
|
+
slug: z.string().min(1),
|
|
100
|
+
teamId: z.number(),
|
|
101
|
+
status: z.enum(["pending", "deploying", "running", "failed", "stopped"]),
|
|
102
|
+
progress: z.enum([
|
|
103
|
+
"queued",
|
|
104
|
+
"creating",
|
|
105
|
+
"building",
|
|
106
|
+
"starting",
|
|
107
|
+
"finalizing",
|
|
108
|
+
"running",
|
|
109
|
+
"failed",
|
|
110
|
+
"stopped",
|
|
111
|
+
]),
|
|
112
|
+
statusMessage: z.string().nullable(),
|
|
113
|
+
})
|
|
114
|
+
.passthrough();
|
|
86
115
|
const deploymentSchema = z.object({
|
|
87
116
|
id: z.number(),
|
|
88
117
|
slug: z.string(),
|
|
@@ -263,6 +292,45 @@ export class AgentServeDeployClient {
|
|
|
263
292
|
return deployAcceptedSchema.parse(raw);
|
|
264
293
|
});
|
|
265
294
|
}
|
|
295
|
+
/**
|
|
296
|
+
* Create or redeploy onto the v2 control plane
|
|
297
|
+
* (`POST /internal/agentkit/deployments`). 202 means accepted; poll
|
|
298
|
+
* {@link getAgentkitDeploy} until a terminal status.
|
|
299
|
+
*/
|
|
300
|
+
deployAgentkit(args) {
|
|
301
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
302
|
+
const slugError = validateDeploymentSlug(args.slug);
|
|
303
|
+
if (slugError !== undefined) {
|
|
304
|
+
throw new DeployApiError(slugError, 400);
|
|
305
|
+
}
|
|
306
|
+
const raw = yield this.request({
|
|
307
|
+
method: "POST",
|
|
308
|
+
path: "/internal/agentkit/deployments",
|
|
309
|
+
body: {
|
|
310
|
+
teamId: args.teamId,
|
|
311
|
+
slug: args.slug,
|
|
312
|
+
gitRepoUrl: args.gitRepoUrl,
|
|
313
|
+
gitRef: args.gitRef,
|
|
314
|
+
agentPath: args.agentPath,
|
|
315
|
+
repositories: args.repositories !== undefined && args.repositories.length > 0
|
|
316
|
+
? args.repositories
|
|
317
|
+
: undefined,
|
|
318
|
+
},
|
|
319
|
+
context: { verb: "deploy", slug: args.slug },
|
|
320
|
+
});
|
|
321
|
+
return agentkitDeployAcceptedSchema.parse(raw);
|
|
322
|
+
});
|
|
323
|
+
}
|
|
324
|
+
getAgentkitDeploy(args) {
|
|
325
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
326
|
+
const raw = yield this.request({
|
|
327
|
+
method: "GET",
|
|
328
|
+
path: `/internal/agentkit/deployments/${encodeURIComponent(args.slug)}?teamId=${args.teamId}`,
|
|
329
|
+
context: { verb: "get deployment", slug: args.slug },
|
|
330
|
+
});
|
|
331
|
+
return agentkitDeployStatusSchema.parse(raw);
|
|
332
|
+
});
|
|
333
|
+
}
|
|
266
334
|
listDeployments(args) {
|
|
267
335
|
return __awaiter(this, void 0, void 0, function* () {
|
|
268
336
|
const raw = yield this.request({
|
|
@@ -476,7 +544,7 @@ function mapErrorResponse(response, bodyText, context) {
|
|
|
476
544
|
// Fastify's route-not-found envelope means we hit the wrong host
|
|
477
545
|
// (api2 vs api.cursor.com), not a missing deployment / closed gate.
|
|
478
546
|
if (/Route \S+ not found/i.test(bodyText)) {
|
|
479
|
-
return new DeployApiError(`Agent Serve deploy API not found on this host — use the default api.cursor.com (unset CURSOR_API_BASE_URL), or point CURSOR_API_BASE_URL at a backend that mounts /internal/agent-serve/*.`, 404);
|
|
547
|
+
return new DeployApiError(`Agent Serve deploy API not found on this host — use the default api.cursor.com (unset CURSOR_API_BASE_URL), or point CURSOR_API_BASE_URL at a backend that mounts /internal/agent-serve/* and /internal/agentkit/*.`, 404);
|
|
480
548
|
}
|
|
481
549
|
return new DeployApiError(context.slug === undefined
|
|
482
550
|
? `Not found — the agent_serve_mvp feature gate may not be enabled for your team.`
|
|
@@ -219,8 +219,9 @@ function buildConnectionBridgeMcpServer(engine, sessionId, connectionName) {
|
|
|
219
219
|
}
|
|
220
220
|
// The one tool path that never reaches `executeServerTool`, so it asks
|
|
221
221
|
// the policy itself.
|
|
222
|
-
const answer = engine.bridgedCallAnswer({
|
|
222
|
+
const answer = yield engine.bridgedCallAnswer({
|
|
223
223
|
sessionId: sessionId !== null && sessionId !== void 0 ? sessionId : "",
|
|
224
|
+
connectionName,
|
|
224
225
|
toolName: request.params.name,
|
|
225
226
|
});
|
|
226
227
|
if (answer.answered) {
|
|
@@ -519,13 +519,20 @@ export declare class SessionEngine {
|
|
|
519
519
|
*/
|
|
520
520
|
bridgedCallAnswer(args: {
|
|
521
521
|
sessionId: string;
|
|
522
|
+
connectionName: string;
|
|
522
523
|
toolName: string;
|
|
523
|
-
}): {
|
|
524
|
+
}): Promise<{
|
|
524
525
|
answered: true;
|
|
525
526
|
result: SDKCustomToolResult;
|
|
526
527
|
} | {
|
|
527
528
|
answered: false;
|
|
528
|
-
}
|
|
529
|
+
}>;
|
|
530
|
+
/**
|
|
531
|
+
* The bounded annotations a connection's listing declares for one tool, or
|
|
532
|
+
* undefined when the tool is unlisted, unannotated, or the listing fails —
|
|
533
|
+
* all of which the policy reads as unclassified, the refusing state.
|
|
534
|
+
*/
|
|
535
|
+
private bridgedToolAnnotations;
|
|
529
536
|
private appendEvent;
|
|
530
537
|
private queueDispatch;
|
|
531
538
|
private dispatchEvent;
|