@cursor/july 0.1.2 → 0.1.3
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/AGENTS.md +16 -5
- package/README.md +8 -9
- package/dist/bin/agent-serve.d.ts +3 -1
- package/dist/bin/agent-serve.d.ts.map +1 -1
- package/dist/bin/agent-serve.js +389 -152
- package/dist/docs/404.html +2 -2
- package/dist/docs/ab.html +3 -3
- package/dist/docs/assets/{app.Oje4vhlk.js → app.BR0RbIdx.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.DtIOQzGj.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.H5XZ2zCB.js → VPLocalSearchBox.qjsVTneI.js} +1 -1
- package/dist/docs/assets/chunks/{theme.CTR_TuaE.js → theme.2Kg8jIp_.js} +2 -2
- package/dist/docs/assets/{quickstart.md.CfU8_uTC.js → quickstart.md.BU6Iwi_9.js} +18 -6
- package/dist/docs/assets/{reference_cli.md.DA730zCu.js → reference_cli.md.Bv6pOxcF.js} +11 -6
- package/dist/docs/assets/{reference_cli.md.DA730zCu.lean.js → reference_cli.md.Bv6pOxcF.lean.js} +1 -1
- package/dist/docs/building-with-agents.html +3 -3
- package/dist/docs/concepts.html +3 -3
- package/dist/docs/deployment.html +3 -3
- package/dist/docs/evals.html +3 -3
- package/dist/docs/guides/agent-to-agent.html +3 -3
- package/dist/docs/guides/cloud-runtime.html +3 -3
- package/dist/docs/guides/github.html +3 -3
- package/dist/docs/guides/human-in-the-loop.html +3 -3
- package/dist/docs/guides/slack.html +3 -3
- package/dist/docs/guides/webhooks.html +3 -3
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +3 -3
- package/dist/docs/index.html +3 -3
- package/dist/docs/quickstart.html +22 -10
- package/dist/docs/reference/agent-config.html +3 -3
- package/dist/docs/reference/channels.html +3 -3
- package/dist/docs/reference/cli.html +14 -9
- package/dist/docs/reference/connections.html +3 -3
- package/dist/docs/reference/hooks.html +3 -3
- package/dist/docs/reference/http-api.html +3 -3
- package/dist/docs/reference/instructions.html +3 -3
- package/dist/docs/reference/playground.html +3 -3
- package/dist/docs/reference/project-layout.html +3 -3
- package/dist/docs/reference/schedules.html +3 -3
- package/dist/docs/reference/sessions.html +3 -3
- package/dist/docs/reference/skills.html +3 -3
- package/dist/docs/reference/subagents.html +3 -3
- package/dist/docs/reference/tools.html +3 -3
- package/dist/docs/scaffolding-agents.html +3 -3
- package/dist/docs/storage.html +3 -3
- package/dist/docs/troubleshooting.html +3 -3
- package/dist/internal/chat-client.d.ts +29 -3
- package/dist/internal/chat-client.d.ts.map +1 -1
- package/dist/internal/chat-client.js +180 -27
- package/dist/internal/cli-ax.d.ts +75 -2
- package/dist/internal/cli-ax.d.ts.map +1 -1
- package/dist/internal/cli-ax.js +600 -52
- package/dist/internal/cli-cursor.d.ts.map +1 -1
- package/dist/internal/cli-cursor.js +8 -36
- package/dist/internal/cli-deploy.d.ts +59 -3
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +316 -38
- package/dist/internal/cursor/credentials.d.ts +9 -0
- package/dist/internal/cursor/credentials.d.ts.map +1 -1
- package/dist/internal/cursor/credentials.js +12 -0
- package/dist/internal/deploy-client.d.ts +9 -1
- package/dist/internal/deploy-client.d.ts.map +1 -1
- package/dist/internal/deploy-client.js +23 -3
- package/dist/internal/deploy-source.d.ts +35 -0
- package/dist/internal/deploy-source.d.ts.map +1 -0
- package/dist/internal/deploy-source.js +118 -0
- package/dist/internal/discovery.d.ts +11 -0
- package/dist/internal/discovery.d.ts.map +1 -1
- package/dist/internal/discovery.js +43 -14
- package/dist/internal/eval-run-store.d.ts.map +1 -1
- package/dist/internal/eval-run-store.js +2 -1
- package/dist/internal/eval-runner.d.ts +2 -0
- package/dist/internal/eval-runner.d.ts.map +1 -1
- package/dist/internal/eval-runner.js +2 -0
- package/dist/internal/event-mapper.d.ts +54 -1
- package/dist/internal/event-mapper.d.ts.map +1 -1
- package/dist/internal/event-mapper.js +151 -41
- package/dist/internal/init-project.d.ts +88 -1
- package/dist/internal/init-project.d.ts.map +1 -1
- package/dist/internal/init-project.js +221 -31
- package/dist/internal/install-cursor-skills.d.ts +64 -0
- package/dist/internal/install-cursor-skills.d.ts.map +1 -0
- package/dist/internal/install-cursor-skills.js +274 -0
- package/dist/internal/logs-client.d.ts +60 -0
- package/dist/internal/logs-client.d.ts.map +1 -0
- package/dist/internal/logs-client.js +311 -0
- package/dist/internal/open-browser.d.ts +5 -0
- package/dist/internal/open-browser.d.ts.map +1 -0
- package/dist/internal/open-browser.js +34 -0
- package/dist/internal/playground/toolchain.d.ts.map +1 -1
- package/dist/internal/playground/toolchain.js +16 -11
- package/dist/internal/playground-proxy.d.ts +69 -0
- package/dist/internal/playground-proxy.d.ts.map +1 -0
- package/dist/internal/playground-proxy.js +468 -0
- package/dist/internal/prompt-context.d.ts +35 -0
- package/dist/internal/prompt-context.d.ts.map +1 -0
- package/dist/internal/prompt-context.js +71 -0
- package/dist/internal/request-headers.d.ts +11 -0
- package/dist/internal/request-headers.d.ts.map +1 -0
- package/dist/internal/request-headers.js +14 -0
- package/dist/internal/resolve-prod-target.d.ts +42 -0
- package/dist/internal/resolve-prod-target.d.ts.map +1 -0
- package/dist/internal/resolve-prod-target.js +111 -0
- package/dist/internal/run-client.d.ts +2 -2
- package/dist/internal/run-client.d.ts.map +1 -1
- package/dist/internal/run-client.js +38 -23
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +10 -4
- package/dist/internal/session-engine.d.ts +1 -1
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +21 -6
- package/dist/internal/sessions-client.d.ts +21 -0
- package/dist/internal/sessions-client.d.ts.map +1 -0
- package/dist/internal/sessions-client.js +168 -0
- package/dist/internal/stream-progress.d.ts.map +1 -1
- package/dist/internal/stream-progress.js +31 -3
- package/dist/internal/terminal-style.d.ts +22 -0
- package/dist/internal/terminal-style.d.ts.map +1 -0
- package/dist/internal/terminal-style.js +49 -0
- package/dist/internal/trajectory.d.ts +10 -5
- package/dist/internal/trajectory.d.ts.map +1 -1
- package/dist/internal/trajectory.js +82 -10
- package/dist/internal/workspace.d.ts +11 -0
- package/dist/internal/workspace.d.ts.map +1 -1
- package/dist/internal/workspace.js +38 -4
- package/dist/playground/assets/index-D-vo2lV_.css +1 -0
- package/dist/playground/assets/index-x60b9q2j.js +312 -0
- package/dist/playground/index.html +2 -2
- package/dist/types.d.ts +26 -1
- package/dist/types.d.ts.map +1 -1
- package/docs/quickstart.md +22 -7
- package/docs/reference/cli.md +51 -3
- package/package.json +3 -1
- package/skills/ab/SKILL.md +8 -8
- package/skills/create-agent/SKILL.md +28 -22
- package/skills/debug/SKILL.md +11 -11
- package/skills/evals/SKILL.md +16 -16
- package/skills/framework-map/SKILL.md +6 -6
- package/skills/github/SKILL.md +13 -13
- package/skills/hillclimb/SKILL.md +10 -10
- package/skills/setup-slack/SKILL.md +13 -13
- package/src/bin/agent-serve.ts +422 -188
- package/src/internal/chat-client.ts +252 -37
- package/src/internal/cli-ax.ts +722 -72
- package/src/internal/cli-cursor.ts +14 -42
- package/src/internal/cli-deploy.ts +428 -49
- package/src/internal/cursor/credentials.ts +14 -0
- package/src/internal/deploy-client.ts +45 -4
- package/src/internal/deploy-source.ts +133 -0
- package/src/internal/discovery.ts +53 -16
- package/src/internal/eval-run-store.ts +2 -1
- package/src/internal/eval-runner.ts +5 -0
- package/src/internal/event-mapper.ts +222 -42
- package/src/internal/init-project.ts +333 -51
- package/src/internal/install-cursor-skills.ts +327 -0
- package/src/internal/logs-client.ts +442 -0
- package/src/internal/open-browser.ts +41 -0
- package/src/internal/playground/toolchain.ts +15 -13
- package/src/internal/playground-proxy.ts +576 -0
- package/src/internal/prompt-context.ts +95 -0
- package/src/internal/request-headers.ts +23 -0
- package/src/internal/resolve-prod-target.ts +150 -0
- package/src/internal/run-client.ts +39 -36
- package/src/internal/server.ts +12 -3
- package/src/internal/session-engine.ts +22 -3
- package/src/internal/sessions-client.ts +182 -0
- package/src/internal/stream-progress.ts +36 -2
- package/src/internal/terminal-style.ts +74 -0
- package/src/internal/trajectory.ts +91 -13
- package/src/internal/workspace.ts +42 -4
- package/src/types.ts +42 -6
- package/dist/docs/assets/chunks/@localSearchIndexroot.zwQ9RCQ7.js +0 -1
- package/dist/playground/assets/index-B1Qc9h2u.css +0 -1
- package/dist/playground/assets/index-CpDYCj8W.js +0 -79
- /package/dist/docs/assets/{quickstart.md.CfU8_uTC.lean.js → quickstart.md.BU6Iwi_9.lean.js} +0 -0
|
@@ -16,8 +16,17 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import { z } from "zod";
|
|
18
18
|
export declare const DEFAULT_CURSOR_BACKEND_URL = "https://api2.cursor.sh";
|
|
19
|
+
export declare const DEFAULT_CURSOR_EXTERNAL_API_URL = "https://api.cursor.com";
|
|
19
20
|
/** Backend API base URL (`CURSOR_API_BASE_URL` override for local dev). */
|
|
20
21
|
export declare function cursorBackendUrl(): string;
|
|
22
|
+
/**
|
|
23
|
+
* External API base URL for routes served only by the external-api
|
|
24
|
+
* microlith (`/internal/agent-serve/*`, engine aliases). In production
|
|
25
|
+
* these are mounted on api.cursor.com and 404 on api2.cursor.sh, so the
|
|
26
|
+
* deploy surface needs its own default. `CURSOR_API_BASE_URL` still
|
|
27
|
+
* overrides everything for local dev, where one server mounts all routes.
|
|
28
|
+
*/
|
|
29
|
+
export declare function cursorExternalApiUrl(): string;
|
|
21
30
|
/** Website base URL for the login deep link (`CURSOR_WEBSITE_URL` override). */
|
|
22
31
|
export declare function cursorWebsiteUrl(): string;
|
|
23
32
|
declare const storedCredentialsSchema: z.ZodObject<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../../src/internal/cursor/credentials.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,0BAA0B,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../../src/internal/cursor/credentials.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,0BAA0B,2BAA2B,CAAC;AACnE,eAAO,MAAM,+BAA+B,2BAA2B,CAAC;AAGxE,2EAA2E;AAC3E,wBAAgB,gBAAgB,IAAI,MAAM,CAIzC;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAI7C;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,IAAI,MAAM,CAIzC;AAUD,QAAA,MAAM,uBAAuB,EAAE,CAAC,CAAC,SAAS,CACxC;IAAE,UAAU,EAAE,CAAC,CAAC,SAAS,CAAC;IAAC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAA;CAAE,EAChD,OAAO,CAKP,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAQ5C;AAED,wBAAsB,qBAAqB,IAAI,OAAO,CACpD,iBAAiB,GAAG,SAAS,CAC9B,CAsBA;AAED,wBAAsB,sBAAsB,CAC1C,WAAW,EAAE,iBAAiB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC,CAO/D;AAMD,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,KAAK,GAAG,OAAO,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,OAAO,CAAC,EAAE;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CActC;AAED,yEAAyE;AACzE,eAAO,MAAM,YAAY,EAAE,MAA8F,CAAC;AAQ1H,MAAM,WAAW,UAAU;IACzB,4DAA4D;IAC5D,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,UAAU,CAU9C;AAKD;;;;GAIG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1C;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,kBAAkB,CAAC,IAAI,EAAE;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,2CAA2C;IAC3C,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,eAAe,CAAC,CAmG3B"}
|
|
@@ -30,12 +30,24 @@ import { dirname, join } from "node:path";
|
|
|
30
30
|
import { z } from "zod";
|
|
31
31
|
import { CLI_COMMAND_NAME } from "../distribution.js";
|
|
32
32
|
export const DEFAULT_CURSOR_BACKEND_URL = "https://api2.cursor.sh";
|
|
33
|
+
export const DEFAULT_CURSOR_EXTERNAL_API_URL = "https://api.cursor.com";
|
|
33
34
|
const DEFAULT_CURSOR_WEBSITE_URL = "https://cursor.com";
|
|
34
35
|
/** Backend API base URL (`CURSOR_API_BASE_URL` override for local dev). */
|
|
35
36
|
export function cursorBackendUrl() {
|
|
36
37
|
var _a;
|
|
37
38
|
return trimTrailingSlash((_a = process.env.CURSOR_API_BASE_URL) !== null && _a !== void 0 ? _a : DEFAULT_CURSOR_BACKEND_URL);
|
|
38
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* External API base URL for routes served only by the external-api
|
|
42
|
+
* microlith (`/internal/agent-serve/*`, engine aliases). In production
|
|
43
|
+
* these are mounted on api.cursor.com and 404 on api2.cursor.sh, so the
|
|
44
|
+
* deploy surface needs its own default. `CURSOR_API_BASE_URL` still
|
|
45
|
+
* overrides everything for local dev, where one server mounts all routes.
|
|
46
|
+
*/
|
|
47
|
+
export function cursorExternalApiUrl() {
|
|
48
|
+
var _a;
|
|
49
|
+
return trimTrailingSlash((_a = process.env.CURSOR_API_BASE_URL) !== null && _a !== void 0 ? _a : DEFAULT_CURSOR_EXTERNAL_API_URL);
|
|
50
|
+
}
|
|
39
51
|
/** Website base URL for the login deep link (`CURSOR_WEBSITE_URL` override). */
|
|
40
52
|
export function cursorWebsiteUrl() {
|
|
41
53
|
var _a;
|
|
@@ -10,6 +10,8 @@
|
|
|
10
10
|
* when it is off — the error mapping says so instead of "not found".
|
|
11
11
|
*/
|
|
12
12
|
export type DeploymentStatus = "pending" | "deploying" | "running" | "degraded" | "failed" | "stopping" | "stopped";
|
|
13
|
+
/** Customer-safe deploy progress (no hosting phase / infra names). */
|
|
14
|
+
export type DeploymentProgress = "queued" | "preparing" | "building" | "finalizing" | "running" | "failed" | "stopping" | "stopped" | "degraded";
|
|
13
15
|
export declare const TERMINAL_DEPLOY_STATUSES: ReadonlySet<DeploymentStatus>;
|
|
14
16
|
/**
|
|
15
17
|
* What gets deployed. Today the control plane builds the engine itself from
|
|
@@ -66,6 +68,11 @@ export interface Deployment {
|
|
|
66
68
|
agentPath?: string;
|
|
67
69
|
desiredState?: string;
|
|
68
70
|
status: DeploymentStatus;
|
|
71
|
+
/**
|
|
72
|
+
* Customer-safe deploy progress (no hosting internals). Present on newer
|
|
73
|
+
* backends; older responses omit it.
|
|
74
|
+
*/
|
|
75
|
+
progress?: DeploymentProgress;
|
|
69
76
|
generation: number;
|
|
70
77
|
observedGeneration?: number | null;
|
|
71
78
|
engineGeneration?: number | null;
|
|
@@ -79,7 +86,8 @@ export interface Deployment {
|
|
|
79
86
|
cursorEventRepos?: string[];
|
|
80
87
|
/** Normalized egress allowlist for the engine pod. */
|
|
81
88
|
egressAllowedDomains?: string[];
|
|
82
|
-
|
|
89
|
+
/** Service-account id (`sa_…`); null on legacy rows. */
|
|
90
|
+
serviceAccountId?: string | number | null;
|
|
83
91
|
/** Masked pod credential; the raw key is never returned. */
|
|
84
92
|
podCredentialMaskedKey?: string | null;
|
|
85
93
|
/** Names of the secrets set on the deployment (values never returned). */
|
|
@@ -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;AAEd,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;CACjC,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,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,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,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy-client.d.ts","sourceRoot":"","sources":["../../src/internal/deploy-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -88,6 +88,19 @@ const deploymentSchema = z.object({
|
|
|
88
88
|
"stopping",
|
|
89
89
|
"stopped",
|
|
90
90
|
]),
|
|
91
|
+
progress: z
|
|
92
|
+
.enum([
|
|
93
|
+
"queued",
|
|
94
|
+
"preparing",
|
|
95
|
+
"building",
|
|
96
|
+
"finalizing",
|
|
97
|
+
"running",
|
|
98
|
+
"failed",
|
|
99
|
+
"stopping",
|
|
100
|
+
"stopped",
|
|
101
|
+
"degraded",
|
|
102
|
+
])
|
|
103
|
+
.optional(),
|
|
91
104
|
generation: z.number(),
|
|
92
105
|
observedGeneration: z.number().nullable().optional(),
|
|
93
106
|
engineGeneration: z.number().nullable().optional(),
|
|
@@ -99,8 +112,9 @@ const deploymentSchema = z.object({
|
|
|
99
112
|
lastReconciledAt: z.string().nullable().optional(),
|
|
100
113
|
cursorEventRepos: z.array(z.string()).optional(),
|
|
101
114
|
egressAllowedDomains: z.array(z.string()).optional(),
|
|
102
|
-
//
|
|
103
|
-
|
|
115
|
+
// String ids (`sa_…`) in prod; older mocks/fixtures used numbers. Null on
|
|
116
|
+
// legacy rows that predate service-account-backed deploys.
|
|
117
|
+
serviceAccountId: z.union([z.string(), z.number()]).nullable().optional(),
|
|
104
118
|
podCredentialMaskedKey: z.string().nullable().optional(),
|
|
105
119
|
secretNames: z.array(z.string()).optional(),
|
|
106
120
|
});
|
|
@@ -354,10 +368,16 @@ function mapErrorResponse(response, bodyText, context) {
|
|
|
354
368
|
return new DeployApiError("The Cursor API key was rejected. Run `agentkit login` again or update CURSOR_API_KEY.", 401);
|
|
355
369
|
case 403:
|
|
356
370
|
return new DeployApiError(`${serverError !== null && serverError !== void 0 ? serverError : "Not authorized"} — deploying needs team-admin permission and the cloud-agent entitlement on that team.`, 403);
|
|
357
|
-
case 404:
|
|
371
|
+
case 404: {
|
|
372
|
+
// Fastify's route-not-found envelope means we hit the wrong host
|
|
373
|
+
// (api2 vs api.cursor.com), not a missing deployment / closed gate.
|
|
374
|
+
if (/Route \S+ not found/i.test(bodyText)) {
|
|
375
|
+
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);
|
|
376
|
+
}
|
|
358
377
|
return new DeployApiError(context.slug === undefined
|
|
359
378
|
? `Not found — the agent_serve_mvp feature gate may not be enabled for your team.`
|
|
360
379
|
: `Deployment${slugPart} was not found — check the slug and --team, or the agent_serve_mvp feature gate may not be enabled for your team.`, 404);
|
|
380
|
+
}
|
|
361
381
|
case 409:
|
|
362
382
|
return new DeployApiError(`A concurrent deploy or stop is changing deployment${slugPart}; retry in a moment.`, 409);
|
|
363
383
|
case 429: {
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Infer `agentkit deploy` git source fields from a local checkout.
|
|
3
|
+
*
|
|
4
|
+
* From an agent directory inside a git repo with an `origin` remote, the
|
|
5
|
+
* CLI can fill `--repo` / `--ref` / `--path` so `agentkit deploy` (no
|
|
6
|
+
* flags) is enough. Explicit flags always win.
|
|
7
|
+
*/
|
|
8
|
+
/** Injectable git runner (cwd + args → stdout, or undefined on failure). */
|
|
9
|
+
export type GitRunner = (args: readonly string[], cwd: string) => Promise<string | undefined>;
|
|
10
|
+
export interface InferredDeploySource {
|
|
11
|
+
gitRepoUrl?: string;
|
|
12
|
+
gitRef?: string;
|
|
13
|
+
/** Agent directory relative to the repo root (posix). Omitted at root. */
|
|
14
|
+
agentPath?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Normalize a git remote URL to the https form the control plane accepts
|
|
18
|
+
* (`https://host/owner/repo`, no `.git` suffix). Returns undefined for
|
|
19
|
+
* unrecognized shapes.
|
|
20
|
+
*/
|
|
21
|
+
export declare function httpsGitRepoUrlFromRemote(remote: string): string | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* Path of `dir` relative to `gitRoot`, using `/` separators. Undefined when
|
|
24
|
+
* `dir` is outside the root; omitted (undefined) when `dir` *is* the root
|
|
25
|
+
* so the control plane treats the agent as living at the repo root.
|
|
26
|
+
*/
|
|
27
|
+
export declare function agentPathRelativeToGitRoot(dir: string, gitRoot: string): string | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* Probe the git checkout containing `dir` for deploy source fields.
|
|
30
|
+
* Missing pieces stay undefined (static deploy / server defaults).
|
|
31
|
+
*/
|
|
32
|
+
export declare function inferDeployGitSource(dir: string, options?: {
|
|
33
|
+
git?: GitRunner;
|
|
34
|
+
}): Promise<InferredDeploySource>;
|
|
35
|
+
//# sourceMappingURL=deploy-source.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploy-source.d.ts","sourceRoot":"","sources":["../../src/internal/deploy-source.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,4EAA4E;AAC5E,MAAM,MAAM,SAAS,GAAG,CACtB,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,GAAG,EAAE,MAAM,KACR,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;AAEjC,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAYD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA6B5E;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,SAAS,CAYpB;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,SAAS,CAAA;CAAE,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CA8B/B"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Infer `agentkit deploy` git source fields from a local checkout.
|
|
3
|
+
*
|
|
4
|
+
* From an agent directory inside a git repo with an `origin` remote, the
|
|
5
|
+
* CLI can fill `--repo` / `--ref` / `--path` so `agentkit deploy` (no
|
|
6
|
+
* flags) is enough. Explicit flags always win.
|
|
7
|
+
*/
|
|
8
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
9
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
10
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
11
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
12
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
13
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
14
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
import { execFile } from "node:child_process";
|
|
18
|
+
import { relative, resolve, sep } from "node:path";
|
|
19
|
+
import { promisify } from "node:util";
|
|
20
|
+
const execFileAsync = promisify(execFile);
|
|
21
|
+
const defaultGitRunner = (args, cwd) => __awaiter(void 0, void 0, void 0, function* () {
|
|
22
|
+
try {
|
|
23
|
+
const { stdout } = yield execFileAsync("git", [...args], { cwd });
|
|
24
|
+
const trimmed = stdout.trim();
|
|
25
|
+
return trimmed === "" ? undefined : trimmed;
|
|
26
|
+
}
|
|
27
|
+
catch (_a) {
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
/**
|
|
32
|
+
* Normalize a git remote URL to the https form the control plane accepts
|
|
33
|
+
* (`https://host/owner/repo`, no `.git` suffix). Returns undefined for
|
|
34
|
+
* unrecognized shapes.
|
|
35
|
+
*/
|
|
36
|
+
export function httpsGitRepoUrlFromRemote(remote) {
|
|
37
|
+
let url = remote.trim();
|
|
38
|
+
if (url === "") {
|
|
39
|
+
return undefined;
|
|
40
|
+
}
|
|
41
|
+
if (url.startsWith("git@")) {
|
|
42
|
+
// git@host:owner/repo.git → https://host/owner/repo.git
|
|
43
|
+
url = `https://${url.slice("git@".length).replace(":", "/")}`;
|
|
44
|
+
}
|
|
45
|
+
else if (url.startsWith("ssh://git@")) {
|
|
46
|
+
url = `https://${url.slice("ssh://git@".length)}`;
|
|
47
|
+
}
|
|
48
|
+
else if (!/^https?:\/\//i.test(url)) {
|
|
49
|
+
return undefined;
|
|
50
|
+
}
|
|
51
|
+
let parsed;
|
|
52
|
+
try {
|
|
53
|
+
parsed = new URL(url);
|
|
54
|
+
}
|
|
55
|
+
catch (_a) {
|
|
56
|
+
return undefined;
|
|
57
|
+
}
|
|
58
|
+
const path = parsed.pathname
|
|
59
|
+
.replace(/\.git$/i, "")
|
|
60
|
+
.replace(/\/+$/, "")
|
|
61
|
+
.replace(/^\/+/, "");
|
|
62
|
+
if (path === "" || !path.includes("/")) {
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
// Use hostname (not host) so ssh://git@github.com:22/… does not keep :22.
|
|
66
|
+
return `https://${parsed.hostname}/${path}`;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Path of `dir` relative to `gitRoot`, using `/` separators. Undefined when
|
|
70
|
+
* `dir` is outside the root; omitted (undefined) when `dir` *is* the root
|
|
71
|
+
* so the control plane treats the agent as living at the repo root.
|
|
72
|
+
*/
|
|
73
|
+
export function agentPathRelativeToGitRoot(dir, gitRoot) {
|
|
74
|
+
const absDir = resolve(dir);
|
|
75
|
+
const absRoot = resolve(gitRoot);
|
|
76
|
+
const rel = relative(absRoot, absDir);
|
|
77
|
+
if (rel === "") {
|
|
78
|
+
return undefined;
|
|
79
|
+
}
|
|
80
|
+
// Outside the repo (or a Windows drive mismatch) → cannot infer.
|
|
81
|
+
if (rel.startsWith("..") || rel.split(sep).includes("..")) {
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
|
+
return rel.split(sep).join("/");
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Probe the git checkout containing `dir` for deploy source fields.
|
|
88
|
+
* Missing pieces stay undefined (static deploy / server defaults).
|
|
89
|
+
*/
|
|
90
|
+
export function inferDeployGitSource(dir, options) {
|
|
91
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
92
|
+
var _a;
|
|
93
|
+
const git = (_a = options === null || options === void 0 ? void 0 : options.git) !== null && _a !== void 0 ? _a : defaultGitRunner;
|
|
94
|
+
const absDir = resolve(dir);
|
|
95
|
+
const gitRoot = yield git(["rev-parse", "--show-toplevel"], absDir);
|
|
96
|
+
if (gitRoot === undefined) {
|
|
97
|
+
return {};
|
|
98
|
+
}
|
|
99
|
+
const remote = yield git(["remote", "get-url", "origin"], gitRoot);
|
|
100
|
+
const gitRepoUrl = remote === undefined ? undefined : httpsGitRepoUrlFromRemote(remote);
|
|
101
|
+
const branch = yield git(["rev-parse", "--abbrev-ref", "HEAD"], gitRoot);
|
|
102
|
+
let gitRef;
|
|
103
|
+
if (branch !== undefined && branch !== "HEAD") {
|
|
104
|
+
gitRef = branch;
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
// Detached HEAD — pin the exact commit so the control plane still
|
|
108
|
+
// has something concrete to build.
|
|
109
|
+
gitRef = yield git(["rev-parse", "HEAD"], gitRoot);
|
|
110
|
+
}
|
|
111
|
+
const agentPath = agentPathRelativeToGitRoot(absDir, gitRoot);
|
|
112
|
+
return {
|
|
113
|
+
gitRepoUrl,
|
|
114
|
+
gitRef,
|
|
115
|
+
agentPath,
|
|
116
|
+
};
|
|
117
|
+
});
|
|
118
|
+
}
|
|
@@ -16,6 +16,17 @@ export interface LoadAgentProjectOptions {
|
|
|
16
16
|
* inside it.
|
|
17
17
|
*/
|
|
18
18
|
export declare function isAgentProjectDir(dir: string): Promise<boolean>;
|
|
19
|
+
/** One immediate child agent directory under a multi-agent parent. */
|
|
20
|
+
export interface ChildAgentDir {
|
|
21
|
+
slug: string;
|
|
22
|
+
dir: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* List agent projects directly under `rootDir` (one level deep) without
|
|
26
|
+
* loading them. Empty when the path is missing or has no child agents.
|
|
27
|
+
* Slug rules match {@link loadAgentProjects} / multi-agent serve.
|
|
28
|
+
*/
|
|
29
|
+
export declare function listChildAgentDirs(rootDir: string): Promise<ChildAgentDir[]>;
|
|
19
30
|
/**
|
|
20
31
|
* Discover the agent projects directly under `rootDir` (one level deep):
|
|
21
32
|
* each immediate child directory that is itself an agent project becomes a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/internal/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,gBAAgB,EAKrB,KAAK,UAAU,EAmBhB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/internal/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAgBH,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,gBAAgB,EAKrB,KAAK,UAAU,EAmBhB,MAAM,aAAa,CAAC;AAoBrB,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;AAmBD;;;;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,CAoBzD;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,CA8DvB;AAED,qEAAqE;AACrE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAElE;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,CAOnE;AAskBD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAiB3E;AAukBD,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,gBAAgB,CAkInE"}
|
|
@@ -38,6 +38,7 @@ import { parseFrontmatter } from "./frontmatter.js";
|
|
|
38
38
|
import { isReservedSecretName, MAX_EGRESS_DOMAINS, validateEgressDomain, validateSecretName, } from "./hosting.js";
|
|
39
39
|
import { toolInputJsonSchema } from "./json-schema.js";
|
|
40
40
|
import { MCP_ENDPOINT_PATH, mcpEndpointToolNames } from "./mcp-endpoint.js";
|
|
41
|
+
import { withIdentityPreamble } from "./workspace.js";
|
|
41
42
|
const MODULE_EXTENSIONS = new Set([".ts", ".mts", ".js", ".mjs"]);
|
|
42
43
|
const NAME_PATTERN = /^[A-Za-z0-9][A-Za-z0-9_-]*$/;
|
|
43
44
|
const SKILL_DESCRIPTION_FALLBACK = (name) => `Instructions for the ${name} skill.`;
|
|
@@ -64,17 +65,15 @@ export function isAgentProjectDir(dir) {
|
|
|
64
65
|
});
|
|
65
66
|
}
|
|
66
67
|
/**
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
* multi-agent serving, where one server hosts many agents under
|
|
71
|
-
* `/<slug>/...`. Throws when no child projects are found.
|
|
68
|
+
* List agent projects directly under `rootDir` (one level deep) without
|
|
69
|
+
* loading them. Empty when the path is missing or has no child agents.
|
|
70
|
+
* Slug rules match {@link loadAgentProjects} / multi-agent serve.
|
|
72
71
|
*/
|
|
73
|
-
export function
|
|
74
|
-
return __awaiter(this,
|
|
72
|
+
export function listChildAgentDirs(rootDir) {
|
|
73
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
75
74
|
const resolved = resolve(rootDir);
|
|
76
75
|
if (!(yield isDirectory(resolved))) {
|
|
77
|
-
|
|
76
|
+
return [];
|
|
78
77
|
}
|
|
79
78
|
const results = [];
|
|
80
79
|
const seenSlugs = new Set();
|
|
@@ -94,11 +93,35 @@ export function loadAgentProjects(rootDir_1) {
|
|
|
94
93
|
throw new Error(`Duplicate agent slug "${slug}" under ${resolved}.`);
|
|
95
94
|
}
|
|
96
95
|
seenSlugs.add(slug);
|
|
97
|
-
results.push({ slug,
|
|
96
|
+
results.push({ slug, dir: childDir });
|
|
98
97
|
}
|
|
99
|
-
|
|
98
|
+
return results;
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Discover the agent projects directly under `rootDir` (one level deep):
|
|
103
|
+
* each immediate child directory that is itself an agent project becomes a
|
|
104
|
+
* mounted agent, keyed by a slug derived from its directory name. Used for
|
|
105
|
+
* multi-agent serving, where one server hosts many agents under
|
|
106
|
+
* `/<slug>/...`. Throws when no child projects are found.
|
|
107
|
+
*/
|
|
108
|
+
export function loadAgentProjects(rootDir_1) {
|
|
109
|
+
return __awaiter(this, arguments, void 0, function* (rootDir, options = {}) {
|
|
110
|
+
const resolved = resolve(rootDir);
|
|
111
|
+
if (!(yield isDirectory(resolved))) {
|
|
112
|
+
throw new Error(`Agent projects directory does not exist: ${resolved}`);
|
|
113
|
+
}
|
|
114
|
+
const children = yield listChildAgentDirs(resolved);
|
|
115
|
+
if (children.length === 0) {
|
|
100
116
|
throw new Error(`No agent projects found directly under ${resolved}. Each agent should be a subdirectory with its own agent/ directory (or flat-layout markers).`);
|
|
101
117
|
}
|
|
118
|
+
const results = [];
|
|
119
|
+
for (const child of children) {
|
|
120
|
+
results.push({
|
|
121
|
+
slug: child.slug,
|
|
122
|
+
project: yield loadAgentProject(child.dir, options),
|
|
123
|
+
});
|
|
124
|
+
}
|
|
102
125
|
return results;
|
|
103
126
|
});
|
|
104
127
|
}
|
|
@@ -215,15 +238,21 @@ export function formatDiagnostics(diagnostics) {
|
|
|
215
238
|
function loadAgent(ctx, agentDir, options) {
|
|
216
239
|
return __awaiter(this, void 0, void 0, function* () {
|
|
217
240
|
var _a;
|
|
218
|
-
var _b
|
|
241
|
+
var _b;
|
|
219
242
|
const config = yield loadAgentConfig(ctx, agentDir, options.isRoot);
|
|
220
|
-
const
|
|
243
|
+
const name = (_b = config === null || config === void 0 ? void 0 : config.name) !== null && _b !== void 0 ? _b : options.name;
|
|
244
|
+
const authoredInstructions = yield loadInstructions(ctx, agentDir, config, options.isRoot);
|
|
245
|
+
// Root agents without authored instructions stay undefined (diagnostic
|
|
246
|
+
// already recorded). Subagents still get the identity line alone.
|
|
247
|
+
const instructions = authoredInstructions === undefined && options.isRoot
|
|
248
|
+
? undefined
|
|
249
|
+
: withIdentityPreamble(name, authoredInstructions);
|
|
221
250
|
// Subagents run as Cursor SDK custom subagents (prompt + description +
|
|
222
251
|
// model); their other slots are inert today, so don't load them — just
|
|
223
252
|
// warn that they exist.
|
|
224
253
|
if (!options.isRoot) {
|
|
225
254
|
yield warnUnsupportedSubagentSlots(ctx, agentDir);
|
|
226
|
-
return Object.assign(Object.assign(Object.assign(Object.assign({ name
|
|
255
|
+
return Object.assign(Object.assign(Object.assign(Object.assign({ name }, ((config === null || config === void 0 ? void 0 : config.description) === undefined
|
|
227
256
|
? {}
|
|
228
257
|
: { description: config.description })), ((config === null || config === void 0 ? void 0 : config.model) === undefined ? {} : { model: config.model })), (instructions === undefined ? {} : { instructions })), { runtime: "local", tools: [], skills: [], connections: [], subagents: [], seedFiles: [] });
|
|
229
258
|
}
|
|
@@ -253,7 +282,7 @@ function loadAgent(ctx, agentDir, options) {
|
|
|
253
282
|
});
|
|
254
283
|
}
|
|
255
284
|
return {
|
|
256
|
-
name
|
|
285
|
+
name,
|
|
257
286
|
description: config === null || config === void 0 ? void 0 : config.description,
|
|
258
287
|
// Root agents always get a concrete model: authored value or DEFAULT_MODEL.
|
|
259
288
|
model: isValidModelSetting(config === null || config === void 0 ? void 0 : config.model) ? config.model : DEFAULT_MODEL,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eval-run-store.d.ts","sourceRoot":"","sources":["../../src/internal/eval-run-store.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,eAAe,EAErB,MAAM,aAAa,CAAC;AASrB,YAAY,EACV,eAAe,EACf,iBAAiB,IAAI,cAAc,EACnC,gBAAgB,EAChB,eAAe,GAChB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qDAAqD;IACrD,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAOF,qBAAa,YAAY;IAWrB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAhBvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsC;IAC3D,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,QAAQ,CAAS;IACzB,wFAAwF;IACxF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoC;IAClE,wEAAwE;IACxE,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC,YACmB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI;IAC/C;;;OAGG;IACc,mBAAmB,CAAC,EAAE,kBAAkB,YAAA,EACvD;IAEJ,yEAAyE;IACzE,OAAO,CAAC,cAAc;IAMhB,IAAI,IAAI,OAAO,CAAC;QACpB,KAAK,EAAE,KAAK,CAAC;YACX,EAAE,EAAE,MAAM,CAAC;YACX,MAAM,EAAE,MAAM,CAAC;YACf,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;SACjB,CAAC,CAAC;QACH,MAAM,EAAE,cAAc,CAAC;KACxB,CAAC,CAiBD;IAEK,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAG7D;IAED,+EAA+E;IACzE,QAAQ,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAG3C;IAED;;;;OAIG;IACG,kBAAkB,IAAI,OAAO,CAAC;QAClC,IAAI,EAAE,eAAe,EAAE,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CAOD;IAED,cAAc,IAAI,MAAM,GAAG,SAAS,CAEnC;IAEK,KAAK,CAAC,KAAK,GAAE,iBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC,CA+DnE;IAED,OAAO,CAAC,UAAU;IAMlB;;;;;;OAMG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAQ7B;YAEa,sBAAsB;YAkDtB,YAAY;IAe1B;;;;OAIG;IACH,OAAO,CAAC,cAAc;YAgBR,WAAW;YAcX,aAAa;YAiBb,OAAO;
|
|
1
|
+
{"version":3,"file":"eval-run-store.d.ts","sourceRoot":"","sources":["../../src/internal/eval-run-store.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,eAAe,EAErB,MAAM,aAAa,CAAC;AASrB,YAAY,EACV,eAAe,EACf,iBAAiB,IAAI,cAAc,EACnC,gBAAgB,EAChB,eAAe,GAChB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qDAAqD;IACrD,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAOF,qBAAa,YAAY;IAWrB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;IAhBvC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsC;IAC3D,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,QAAQ,CAAS;IACzB,wFAAwF;IACxF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAoC;IAClE,wEAAwE;IACxE,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAEhC,YACmB,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI;IAC/C;;;OAGG;IACc,mBAAmB,CAAC,EAAE,kBAAkB,YAAA,EACvD;IAEJ,yEAAyE;IACzE,OAAO,CAAC,cAAc;IAMhB,IAAI,IAAI,OAAO,CAAC;QACpB,KAAK,EAAE,KAAK,CAAC;YACX,EAAE,EAAE,MAAM,CAAC;YACX,MAAM,EAAE,MAAM,CAAC;YACf,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;SACjB,CAAC,CAAC;QACH,MAAM,EAAE,cAAc,CAAC;KACxB,CAAC,CAiBD;IAEK,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAG7D;IAED,+EAA+E;IACzE,QAAQ,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAG3C;IAED;;;;OAIG;IACG,kBAAkB,IAAI,OAAO,CAAC;QAClC,IAAI,EAAE,eAAe,EAAE,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC,CAOD;IAED,cAAc,IAAI,MAAM,GAAG,SAAS,CAEnC;IAEK,KAAK,CAAC,KAAK,GAAE,iBAAsB,GAAG,OAAO,CAAC,eAAe,CAAC,CA+DnE;IAED,OAAO,CAAC,UAAU;IAMlB;;;;;;OAMG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAQ7B;YAEa,sBAAsB;YAkDtB,YAAY;IAe1B;;;;OAIG;IACH,OAAO,CAAC,cAAc;YAgBR,WAAW;YAcX,aAAa;YAiBb,OAAO;IAoGrB,OAAO,CAAC,eAAe;CAqCxB;AAwDD,qBAAa,oBAAqB,SAAQ,KAAK;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM;IAAxC,YAAqB,WAAW,EAAE,MAAM,EAGvC;CACF;AAED,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,cAGC;CACF"}
|
|
@@ -294,7 +294,8 @@ export class EvalRunStore {
|
|
|
294
294
|
c.inputs = [...((_c = c.inputs) !== null && _c !== void 0 ? _c : []), event.data.text];
|
|
295
295
|
}
|
|
296
296
|
if (event.type === "message.completed" &&
|
|
297
|
-
typeof ((_b = event.data) === null || _b === void 0 ? void 0 : _b.text) === "string"
|
|
297
|
+
typeof ((_b = event.data) === null || _b === void 0 ? void 0 : _b.text) === "string" &&
|
|
298
|
+
event.data.parentCallId === undefined) {
|
|
298
299
|
c.finalText = event.data.text;
|
|
299
300
|
}
|
|
300
301
|
}, onCaseDone: (result) => {
|
|
@@ -48,6 +48,8 @@ export interface RunEvalsOptions extends EvalSelectionOptions {
|
|
|
48
48
|
baseUrl: string;
|
|
49
49
|
timeoutMs?: number;
|
|
50
50
|
bearerToken?: string;
|
|
51
|
+
/** Extra request headers (e.g. hosted engineAccess). */
|
|
52
|
+
headers?: Record<string, string>;
|
|
51
53
|
verbose?: boolean;
|
|
52
54
|
onEvent?: (event: SessionEvent) => void;
|
|
53
55
|
/** Fired when a case begins executing (after concurrency slot acquired). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"eval-runner.d.ts","sourceRoot":"","sources":["../../src/internal/eval-runner.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"eval-runner.d.ts","sourceRoot":"","sources":["../../src/internal/eval-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -149,6 +149,7 @@ export function runDiscoveredEvals(options) {
|
|
|
149
149
|
baseUrl: options.baseUrl,
|
|
150
150
|
defaultTimeoutMs,
|
|
151
151
|
bearerToken: options.bearerToken,
|
|
152
|
+
headers: options.headers,
|
|
152
153
|
verbose: Boolean(options.verbose),
|
|
153
154
|
onEvent: (event) => {
|
|
154
155
|
var _a, _b;
|
|
@@ -209,6 +210,7 @@ function runOneEval(discovered, opts) {
|
|
|
209
210
|
// Keep defineEval traffic out of live defineAB enrollment/metrics.
|
|
210
211
|
purpose: "eval",
|
|
211
212
|
bearerToken: opts.bearerToken,
|
|
213
|
+
headers: opts.headers,
|
|
212
214
|
workspaceDir: options.workspaceDir,
|
|
213
215
|
workspaceFiles: options.workspaceFiles,
|
|
214
216
|
timeoutMs,
|
|
@@ -3,8 +3,53 @@
|
|
|
3
3
|
* (`InteractionUpdate`) onto the framework's channel event vocabulary
|
|
4
4
|
* (`SessionEvent` payloads). One mapper instance covers one turn.
|
|
5
5
|
*/
|
|
6
|
-
import type { InteractionUpdate, ToolCall } from "@cursor/sdk";
|
|
6
|
+
import type { InteractionUpdate as SdkInteractionUpdate, ToolCall } from "@cursor/sdk";
|
|
7
7
|
import type { SessionEventPayload, TurnUsage } from "../types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Nested interaction updates from a task/subagent tool-call-delta.
|
|
10
|
+
* Mirrored locally so agent-serve typechecks against published `@cursor/sdk`
|
|
11
|
+
* versions that do not yet export `NestedTaskUpdate` / `tool-call-delta`.
|
|
12
|
+
*/
|
|
13
|
+
type NestedTaskUpdate = {
|
|
14
|
+
type: "text-delta";
|
|
15
|
+
text: string;
|
|
16
|
+
} | {
|
|
17
|
+
type: "thinking-delta";
|
|
18
|
+
text: string;
|
|
19
|
+
} | {
|
|
20
|
+
type: "thinking-completed";
|
|
21
|
+
thinkingDurationMs: number;
|
|
22
|
+
} | {
|
|
23
|
+
type: "tool-call-started";
|
|
24
|
+
callId: string;
|
|
25
|
+
toolCall: ToolCall;
|
|
26
|
+
modelCallId: string;
|
|
27
|
+
} | {
|
|
28
|
+
type: "tool-call-completed";
|
|
29
|
+
callId: string;
|
|
30
|
+
toolCall: ToolCall;
|
|
31
|
+
modelCallId: string;
|
|
32
|
+
} | {
|
|
33
|
+
type: "partial-tool-call";
|
|
34
|
+
callId: string;
|
|
35
|
+
toolCall: ToolCall;
|
|
36
|
+
modelCallId: string;
|
|
37
|
+
} | {
|
|
38
|
+
type: "step-started";
|
|
39
|
+
stepId: number;
|
|
40
|
+
} | {
|
|
41
|
+
type: "step-completed";
|
|
42
|
+
stepId: number;
|
|
43
|
+
stepDurationMs: number;
|
|
44
|
+
};
|
|
45
|
+
type ToolCallDeltaUpdate = {
|
|
46
|
+
type: "tool-call-delta";
|
|
47
|
+
callId: string;
|
|
48
|
+
modelCallId: string;
|
|
49
|
+
taskUpdate: NestedTaskUpdate;
|
|
50
|
+
};
|
|
51
|
+
/** SDK updates plus nested task deltas once the SDK exposes them. */
|
|
52
|
+
type InteractionUpdate = SdkInteractionUpdate | ToolCallDeltaUpdate;
|
|
8
53
|
export interface ToolCallDescription {
|
|
9
54
|
toolName: string;
|
|
10
55
|
args?: unknown;
|
|
@@ -24,6 +69,8 @@ export declare class TurnEventMapper {
|
|
|
24
69
|
private usageTotal;
|
|
25
70
|
private lastAssistantText;
|
|
26
71
|
private summaryTitle;
|
|
72
|
+
/** Per-parent-call accumulators for nested subagent streams. */
|
|
73
|
+
private readonly nested;
|
|
27
74
|
constructor(emit: (payload: SessionEventPayload) => void);
|
|
28
75
|
/** Per-turn token usage summed across model steps. */
|
|
29
76
|
get usage(): TurnUsage | undefined;
|
|
@@ -34,7 +81,12 @@ export declare class TurnEventMapper {
|
|
|
34
81
|
handleUpdate(update: InteractionUpdate): void;
|
|
35
82
|
/** Close out the turn: finalize any open assistant text block. */
|
|
36
83
|
finish(): void;
|
|
84
|
+
private handleNestedTaskUpdate;
|
|
85
|
+
private emitToolStarted;
|
|
86
|
+
private emitToolCompleted;
|
|
87
|
+
private ensureNested;
|
|
37
88
|
private flushAssistantText;
|
|
89
|
+
private flushNestedAssistantText;
|
|
38
90
|
}
|
|
39
91
|
/**
|
|
40
92
|
* Human-meaningful tool identity for stream events. In-process tools calls
|
|
@@ -43,4 +95,5 @@ export declare class TurnEventMapper {
|
|
|
43
95
|
*/
|
|
44
96
|
export declare function describeToolCall(toolCall: ToolCall): ToolCallDescription;
|
|
45
97
|
export declare function describeToolResult(toolCall: ToolCall): ToolResultDescription;
|
|
98
|
+
export {};
|
|
46
99
|
//# sourceMappingURL=event-mapper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-mapper.d.ts","sourceRoot":"","sources":["../../src/internal/event-mapper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"event-mapper.d.ts","sourceRoot":"","sources":["../../src/internal/event-mapper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,iBAAiB,IAAI,oBAAoB,EACzC,QAAQ,EACT,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAIlE;;;;GAIG;AACH,KAAK,gBAAgB,GACjB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,GAC1D;IACE,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB,GACD;IACE,IAAI,EAAE,qBAAqB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB,GACD;IACE,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB,GACD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvE,KAAK,mBAAmB,GAAG;IACzB,IAAI,EAAE,iBAAiB,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,gBAAgB,CAAC;CAC9B,CAAC;AAEF,qEAAqE;AACrE,KAAK,iBAAiB,GAAG,oBAAoB,GAAG,mBAAmB,CAAC;AAWpE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACpD;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAOD,qBAAa,eAAe;IASd,OAAO,CAAC,QAAQ,CAAC,IAAI;IARjC,OAAO,CAAC,eAAe,CAAM;IAC7B,OAAO,CAAC,oBAAoB,CAAM;IAClC,OAAO,CAAC,UAAU,CAAwB;IAC1C,OAAO,CAAC,iBAAiB,CAAqB;IAC9C,OAAO,CAAC,YAAY,CAAqB;IACzC,gEAAgE;IAChE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyC;IAEhE,YAA6B,IAAI,EAAE,CAAC,OAAO,EAAE,mBAAmB,KAAK,IAAI,EAAI;IAE7E,sDAAsD;IACtD,IAAI,KAAK,IAAI,SAAS,GAAG,SAAS,CAEjC;IAED,yEAAyE;IACzE,IAAI,SAAS,IAAI,MAAM,GAAG,SAAS,CAElC;IAED,4EAA4E;IAC5E,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAE9B;IAED,YAAY,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CA4E5C;IAED,kEAAkE;IAClE,MAAM,IAAI,IAAI,CAKb;IAED,OAAO,CAAC,sBAAsB;IAgE9B,OAAO,CAAC,eAAe;IAkCvB,OAAO,CAAC,iBAAiB;IA2BzB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,wBAAwB;CAejC;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,mBAAmB,CA0CxE;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,GAAG,qBAAqB,CA4B5E"}
|