@cursor/july 0.1.87 → 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 +8 -1
- package/dist/internal/advertise-tools.d.ts.map +1 -1
- package/dist/internal/advertise-tools.js +4 -2
- 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/cli-docs.js +11 -0
- package/dist/internal/cloud-merge.d.ts +3 -1
- package/dist/internal/cloud-merge.d.ts.map +1 -1
- package/dist/internal/cloud-merge.js +10 -2
- 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 +12 -0
- package/dist/internal/cursor/backend-client.d.ts.map +1 -1
- package/dist/internal/cursor/backend-client.js +27 -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/discovery.d.ts.map +1 -1
- package/dist/internal/discovery.js +87 -11
- package/dist/internal/docs-site.d.ts +13 -2
- package/dist/internal/docs-site.d.ts.map +1 -1
- package/dist/internal/docs-site.js +76 -13
- package/dist/internal/grokbot/runner.d.ts +61 -0
- package/dist/internal/grokbot/runner.d.ts.map +1 -0
- package/dist/internal/grokbot/runner.js +278 -0
- package/dist/internal/mcp-endpoint.js +6 -3
- package/dist/internal/mcp-host.d.ts +14 -1
- package/dist/internal/mcp-host.d.ts.map +1 -1
- package/dist/internal/mcp-host.js +41 -2
- package/dist/internal/runtime-dispatch-runner.d.ts +30 -0
- package/dist/internal/runtime-dispatch-runner.d.ts.map +1 -0
- package/dist/internal/runtime-dispatch-runner.js +60 -0
- package/dist/internal/sdk-runner.d.ts.map +1 -1
- package/dist/internal/sdk-runner.js +7 -0
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +24 -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 +121 -46
- 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 +86 -2
- 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 +9 -1
- package/src/internal/advertise-tools.ts +7 -0
- package/src/internal/cli-ax.ts +1 -1
- package/src/internal/cli-deploy.ts +123 -15
- package/src/internal/cli-docs.ts +11 -0
- package/src/internal/cloud-merge.ts +12 -2
- package/src/internal/cursor/account-mcp.ts +15 -1
- package/src/internal/cursor/backend-client.ts +37 -0
- package/src/internal/deploy-client.ts +122 -2
- package/src/internal/discovery.ts +133 -13
- package/src/internal/docs-site.ts +83 -13
- package/src/internal/grokbot/runner.ts +361 -0
- package/src/internal/mcp-endpoint.ts +6 -1
- package/src/internal/mcp-host.ts +48 -0
- package/src/internal/runtime-dispatch-runner.ts +63 -0
- package/src/internal/sdk-runner.ts +9 -0
- package/src/internal/server.ts +32 -4
- package/src/internal/session-engine.ts +126 -21
- package/src/internal/tool-policy.ts +80 -1
- package/src/types.ts +84 -2
- 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.
|
|
@@ -283,6 +283,11 @@ Options:
|
|
|
283
283
|
githubChannel({ cursorAccount }). Admitted callers can drive
|
|
284
284
|
sessions holding the account's repo-scoped GitHub credential,
|
|
285
285
|
so use only behind a trusted boundary (e.g. an SSO proxy).
|
|
286
|
+
--allow-anonymous-grokbot
|
|
287
|
+
serve: allow --allow-anonymous together with a
|
|
288
|
+
runtime: "grokbot" mount. Admitted callers can drive turns
|
|
289
|
+
on the signed-in account's hosted Grok Bot computer, so use
|
|
290
|
+
only behind a trusted boundary (e.g. an SSO proxy).
|
|
286
291
|
--allow-anonymous-cursor-account-mcp
|
|
287
292
|
serve: allow --allow-anonymous together with
|
|
288
293
|
defineConnection({ cursorAccount: true }). Admitted callers
|
|
@@ -459,6 +464,7 @@ function main(argv) {
|
|
|
459
464
|
"allow-anonymous": { type: "boolean", default: false },
|
|
460
465
|
"allow-anonymous-cursor-github": { type: "boolean", default: false },
|
|
461
466
|
"allow-anonymous-cursor-account-mcp": { type: "boolean", default: false },
|
|
467
|
+
"allow-anonymous-grokbot": { type: "boolean", default: false },
|
|
462
468
|
"cursor-github-proxy": { type: "boolean", default: false },
|
|
463
469
|
"no-schedules": { type: "boolean", default: false },
|
|
464
470
|
"no-control-plane": { type: "boolean", default: false },
|
|
@@ -1048,6 +1054,7 @@ function main(argv) {
|
|
|
1048
1054
|
allowAnonymousCursorAccountMcp: values["allow-anonymous-cursor-account-mcp"] === true
|
|
1049
1055
|
? true
|
|
1050
1056
|
: undefined,
|
|
1057
|
+
allowAnonymousGrokbot: values["allow-anonymous-grokbot"] === true ? true : undefined,
|
|
1051
1058
|
cursorGithubProxy: values["cursor-github-proxy"] === true ? true : undefined,
|
|
1052
1059
|
schedules: values["no-schedules"] === true ? false : undefined,
|
|
1053
1060
|
noControlPlane: values["no-control-plane"] === true ? true : undefined,
|
|
@@ -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"}
|
|
@@ -157,8 +157,10 @@ function toDiscoveredTool(connection, info, exposedName, source) {
|
|
|
157
157
|
inputSchema }, (outputSchema === undefined ? {} : { outputSchema })), { execute: (input) => __awaiter(this, void 0, void 0, function* () {
|
|
158
158
|
return formatMcpToolResult(connection.name, info.name, yield source.callTool(info.name, input !== null && input !== void 0 ? input : {}));
|
|
159
159
|
}) }));
|
|
160
|
-
return Object.assign(Object.assign({ name: exposedName, description,
|
|
161
|
-
inputSchema }, (outputSchema === undefined ? {} : { outputSchema })), { execution: "server", needsApproval: false,
|
|
160
|
+
return Object.assign(Object.assign(Object.assign(Object.assign({ name: exposedName, description,
|
|
161
|
+
inputSchema }, (outputSchema === undefined ? {} : { outputSchema })), { execution: "server", needsApproval: false }), (info.annotations === undefined
|
|
162
|
+
? {}
|
|
163
|
+
: { annotations: info.annotations })), { advertised: true, definition });
|
|
162
164
|
}
|
|
163
165
|
/**
|
|
164
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
|
});
|
|
@@ -129,6 +129,17 @@ function handleDocsRequest(req, res, renderFile) {
|
|
|
129
129
|
res.end();
|
|
130
130
|
return;
|
|
131
131
|
}
|
|
132
|
+
if (pathname === "/v1/health" || pathname === "/v1/health/") {
|
|
133
|
+
// Same path the corp ALB / ECS check uses on agent-serve. Static docs
|
|
134
|
+
// has no runtimes; liveness is "the process accepted HTTP".
|
|
135
|
+
res.writeHead(200, { "content-type": "application/json; charset=utf-8" });
|
|
136
|
+
if (method === "HEAD") {
|
|
137
|
+
res.end();
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
res.end(JSON.stringify({ ok: true }));
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
132
143
|
let requestPath = "";
|
|
133
144
|
if (pathname === "/docs" || pathname === "/docs/") {
|
|
134
145
|
requestPath = "";
|
|
@@ -14,7 +14,9 @@ export declare function mergeCloudOptions(args: {
|
|
|
14
14
|
}): AgentCloudOptions | undefined;
|
|
15
15
|
/**
|
|
16
16
|
* Session turn runtime: a per-session `cloud` attach forces cloud even when
|
|
17
|
-
* the agent defaults to local (chat server tools + Drive handoff).
|
|
17
|
+
* the agent defaults to local (chat server tools + Drive handoff). A
|
|
18
|
+
* grokbot agent refuses the attach — silently moving its session onto a
|
|
19
|
+
* cloud VM would swap the harness (and the box) out from under it.
|
|
18
20
|
*/
|
|
19
21
|
export declare function resolveSessionRuntime(args: {
|
|
20
22
|
agentRuntime: AgentRuntime;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloud-merge.d.ts","sourceRoot":"","sources":["../../src/internal/cloud-merge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEnE;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,IAAI,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACpC,QAAQ,EAAE,iBAAiB,GAAG,SAAS,CAAC;CACzC,GAAG,iBAAiB,GAAG,SAAS,CAehC;AAED
|
|
1
|
+
{"version":3,"file":"cloud-merge.d.ts","sourceRoot":"","sources":["../../src/internal/cloud-merge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEnE;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,IAAI,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACpC,QAAQ,EAAE,iBAAiB,GAAG,SAAS,CAAC;CACzC,GAAG,iBAAiB,GAAG,SAAS,CAehC;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,YAAY,EAAE,YAAY,CAAC;IAC3B,aAAa,EAAE,iBAAiB,GAAG,SAAS,CAAC;CAC9C,GAAG,YAAY,CAUf"}
|
|
@@ -21,8 +21,16 @@ export function mergeCloudOptions(args) {
|
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
23
|
* Session turn runtime: a per-session `cloud` attach forces cloud even when
|
|
24
|
-
* the agent defaults to local (chat server tools + Drive handoff).
|
|
24
|
+
* the agent defaults to local (chat server tools + Drive handoff). A
|
|
25
|
+
* grokbot agent refuses the attach — silently moving its session onto a
|
|
26
|
+
* cloud VM would swap the harness (and the box) out from under it.
|
|
25
27
|
*/
|
|
26
28
|
export function resolveSessionRuntime(args) {
|
|
27
|
-
|
|
29
|
+
if (args.cloudOverride === undefined) {
|
|
30
|
+
return args.agentRuntime;
|
|
31
|
+
}
|
|
32
|
+
if (args.agentRuntime === "grokbot") {
|
|
33
|
+
throw new Error('Grok Bot sessions cannot attach cloud agents: per-session `cloud` options are not supported on runtime: "grokbot". Refusing the session rather than moving it onto a cloud VM.');
|
|
34
|
+
}
|
|
35
|
+
return "cloud";
|
|
28
36
|
}
|
|
@@ -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;
|
|
@@ -133,6 +141,10 @@ export declare class CursorBackendClient {
|
|
|
133
141
|
permissions?: "read" | "pr-write" | "contents-write";
|
|
134
142
|
}): Promise<CursorGithubToken>;
|
|
135
143
|
private rpc;
|
|
144
|
+
/**
|
|
145
|
+
* Serve a cached access token for the account, exchanging the API key
|
|
146
|
+
* when none is cached or it is near expiry.
|
|
147
|
+
*/
|
|
136
148
|
private getAccessToken;
|
|
137
149
|
private exchangeApiKey;
|
|
138
150
|
}
|
|
@@ -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
|
});
|
|
@@ -353,6 +357,10 @@ export class CursorBackendClient {
|
|
|
353
357
|
return parseRpcResponse(method, second);
|
|
354
358
|
});
|
|
355
359
|
}
|
|
360
|
+
/**
|
|
361
|
+
* Serve a cached access token for the account, exchanging the API key
|
|
362
|
+
* when none is cached or it is near expiry.
|
|
363
|
+
*/
|
|
356
364
|
getAccessToken() {
|
|
357
365
|
if (this.token !== undefined &&
|
|
358
366
|
Date.now() < this.token.expiresAtMs - TOKEN_EXPIRY_LEEWAY_MS) {
|
|
@@ -517,6 +525,24 @@ function parseOutputSchemaJson(outputSchemaJson) {
|
|
|
517
525
|
? parsed
|
|
518
526
|
: undefined;
|
|
519
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
|
+
}
|
|
520
546
|
function toCallResult(result) {
|
|
521
547
|
var _a;
|
|
522
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"}
|