@cursor/july 0.1.68 → 0.1.74
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 +17 -13
- package/README.md +23 -11
- package/dist/bin/agent-serve.js +10 -7
- package/dist/channels/github/api.d.ts +2 -0
- package/dist/channels/github/api.d.ts.map +1 -1
- package/dist/channels/github/api.js +2 -1
- package/dist/channels/github/binding.d.ts +7 -0
- package/dist/channels/github/binding.d.ts.map +1 -1
- package/dist/channels/github/binding.js +4 -0
- package/dist/channels/github/checks.d.ts +99 -0
- package/dist/channels/github/checks.d.ts.map +1 -0
- package/dist/channels/github/checks.js +108 -0
- package/dist/channels/github/cursor-account.d.ts +4 -4
- package/dist/channels/github/cursor-account.d.ts.map +1 -1
- package/dist/channels/github/cursor-account.js +7 -5
- package/dist/channels/github/index.d.ts +1 -0
- package/dist/channels/github/index.d.ts.map +1 -1
- package/dist/channels/github/index.js +1 -0
- package/dist/channels/github/types.d.ts +8 -0
- package/dist/channels/github/types.d.ts.map +1 -1
- package/dist/channels/slack/manifest.d.ts +2 -2
- package/dist/channels/slack/manifest.d.ts.map +1 -1
- package/dist/channels/slack/manifest.js +13 -11
- package/dist/channels/slack/types.d.ts +2 -2
- package/dist/channels/slack/types.d.ts.map +1 -1
- package/dist/connections.d.ts +17 -5
- package/dist/connections.d.ts.map +1 -1
- package/dist/connections.js +17 -5
- package/dist/docs/404.html +2 -2
- package/dist/docs/ab.html +3 -3
- package/dist/docs/assets/{app.C5XUTCw9.js → app.BETd-WqU.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.DM5INS71.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.CGDTAYHY.js → VPLocalSearchBox.wEaGEmV9.js} +1 -1
- package/dist/docs/assets/chunks/{theme.lPixh250.js → theme.DNDicFOP.js} +2 -2
- package/dist/docs/assets/{concepts.md.CqOsxbMU.js → concepts.md.BXAm6G-C.js} +1 -1
- package/dist/docs/assets/{guides_mcp-oauth.md.C7G7IykG.js → guides_mcp-oauth.md.CzEB6RaG.js} +1 -1
- package/dist/docs/assets/{reference_agent-config.md.DHkkvcEZ.js → reference_agent-config.md.BZnEKfEc.js} +3 -4
- package/dist/docs/assets/{reference_agent-config.md.DHkkvcEZ.lean.js → reference_agent-config.md.BZnEKfEc.lean.js} +1 -1
- package/dist/docs/assets/{reference_cli.md.Cl14Jfo3.js → reference_cli.md.TAaYU8br.js} +3 -3
- package/dist/docs/assets/{reference_cli.md.Cl14Jfo3.lean.js → reference_cli.md.TAaYU8br.lean.js} +1 -1
- package/dist/docs/assets/{reference_connections.md.Bwswbm6H.js → reference_connections.md.Cu3N-S3Q.js} +18 -11
- package/dist/docs/assets/{reference_connections.md.Bwswbm6H.lean.js → reference_connections.md.Cu3N-S3Q.lean.js} +1 -1
- package/dist/docs/assets/{reference_sessions.md.DBVFi2Sx.js → reference_sessions.md.B0DdlM-K.js} +1 -1
- package/dist/docs/assets/{reference_tools.md.Wmvb7Lob.js → reference_tools.md.DTg_kEsx.js} +1 -1
- package/dist/docs/assets/scaffolding-agents.md.CiGsJ1aw.js +1 -0
- package/dist/docs/assets/{scaffolding-agents.md.CrWSA0Ko.lean.js → scaffolding-agents.md.CiGsJ1aw.lean.js} +1 -1
- package/dist/docs/assets/troubleshooting.md.DQ-hYuZT.js +1 -0
- package/dist/docs/building-with-agents.html +3 -3
- package/dist/docs/concepts.html +5 -5
- package/dist/docs/deployment.html +3 -3
- package/dist/docs/evals.html +3 -3
- package/dist/docs/example-agents/approval-buddy.html +3 -3
- package/dist/docs/example-agents/benny.html +3 -3
- package/dist/docs/example-agents/bugbot.html +3 -3
- package/dist/docs/example-agents/codebase-wiki.html +3 -3
- package/dist/docs/example-agents/codeowners-review.html +3 -3
- package/dist/docs/example-agents/concierge.html +3 -3
- package/dist/docs/example-agents/fsd.html +3 -3
- package/dist/docs/example-agents/index.html +3 -3
- package/dist/docs/example-agents/knowledge-base.html +3 -3
- package/dist/docs/example-agents/oncall.html +3 -3
- package/dist/docs/example-agents/security-reviewer.html +3 -3
- package/dist/docs/example-agents/slack-agent.html +3 -3
- package/dist/docs/example-agents/weather-agent.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/convert-automation.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/mcp-oauth.html +5 -5
- package/dist/docs/guides/opentelemetry.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 +3 -3
- package/dist/docs/reference/agent-config.html +5 -6
- package/dist/docs/reference/artifacts.html +3 -3
- package/dist/docs/reference/channels.html +3 -3
- package/dist/docs/reference/cli.html +6 -6
- package/dist/docs/reference/connections.html +20 -13
- 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/prompt.html +3 -3
- package/dist/docs/reference/schedules.html +3 -3
- package/dist/docs/reference/sessions.html +5 -5
- package/dist/docs/reference/skills.html +3 -3
- package/dist/docs/reference/subagents.html +3 -3
- package/dist/docs/reference/tools.html +5 -5
- package/dist/docs/scaffolding-agents.html +5 -5
- package/dist/docs/storage.html +3 -3
- package/dist/docs/templates/agentic-owners.html +3 -3
- package/dist/docs/templates/demo.html +3 -3
- package/dist/docs/templates/pr-autofixer.html +3 -3
- package/dist/docs/templates/security-reviewer.html +3 -3
- package/dist/docs/templates/triage.html +3 -3
- package/dist/docs/troubleshooting.html +5 -5
- package/dist/internal/advertise-tools.d.ts +11 -6
- package/dist/internal/advertise-tools.d.ts.map +1 -1
- package/dist/internal/advertise-tools.js +63 -30
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +2 -4
- package/dist/internal/cli-skills.d.ts +4 -2
- package/dist/internal/cli-skills.d.ts.map +1 -1
- package/dist/internal/cli-skills.js +8 -3
- package/dist/internal/convert-automation/convert-workflow.d.ts.map +1 -1
- package/dist/internal/convert-automation/convert-workflow.js +2 -10
- package/dist/internal/cursor/account-mcp.d.ts +29 -3
- package/dist/internal/cursor/account-mcp.d.ts.map +1 -1
- package/dist/internal/cursor/account-mcp.js +147 -67
- package/dist/internal/cursor/backend-client.d.ts +11 -6
- package/dist/internal/cursor/backend-client.d.ts.map +1 -1
- package/dist/internal/cursor/backend-client.js +32 -10
- package/dist/internal/cursor-account-mcp-auth.d.ts +11 -0
- package/dist/internal/cursor-account-mcp-auth.d.ts.map +1 -1
- package/dist/internal/cursor-account-mcp-auth.js +69 -0
- package/dist/internal/deploy-client.d.ts +0 -7
- package/dist/internal/deploy-client.d.ts.map +1 -1
- package/dist/internal/deploy-client.js +2 -4
- package/dist/internal/deploy-manifest.d.ts +15 -24
- package/dist/internal/deploy-manifest.d.ts.map +1 -1
- package/dist/internal/deploy-manifest.js +38 -27
- package/dist/internal/deployment-scm-event-stream.d.ts +4 -1
- package/dist/internal/deployment-scm-event-stream.d.ts.map +1 -1
- package/dist/internal/deployment-scm-event-stream.js +15 -1
- package/dist/internal/discovery.d.ts.map +1 -1
- package/dist/internal/discovery.js +42 -10
- package/dist/internal/init-project.d.ts.map +1 -1
- package/dist/internal/init-project.js +7 -106
- package/dist/internal/init-scaffold.d.ts +8 -0
- package/dist/internal/init-scaffold.d.ts.map +1 -0
- package/dist/internal/init-scaffold.js +168 -0
- package/dist/internal/inline-stdio-mcp.d.ts +2 -0
- package/dist/internal/inline-stdio-mcp.d.ts.map +1 -1
- package/dist/internal/inline-stdio-mcp.js +10 -8
- package/dist/internal/install-cursor-skills.d.ts +71 -16
- package/dist/internal/install-cursor-skills.d.ts.map +1 -1
- package/dist/internal/install-cursor-skills.js +160 -48
- package/dist/internal/json-schema.d.ts +7 -0
- package/dist/internal/json-schema.d.ts.map +1 -1
- package/dist/internal/json-schema.js +18 -3
- package/dist/internal/mcp-endpoint.js +7 -7
- package/dist/internal/mcp-host.js +4 -2
- package/dist/internal/mcp-oauth.d.ts +22 -0
- package/dist/internal/mcp-oauth.d.ts.map +1 -1
- package/dist/internal/mcp-oauth.js +40 -1
- package/dist/internal/package-inline-stdio.d.ts.map +1 -1
- package/dist/internal/package-inline-stdio.js +5 -5
- package/dist/internal/review-comments.d.ts +97 -0
- package/dist/internal/review-comments.d.ts.map +1 -1
- package/dist/internal/review-comments.js +151 -0
- package/dist/internal/sanitize-mcp-tool-name.d.ts +20 -0
- package/dist/internal/sanitize-mcp-tool-name.d.ts.map +1 -0
- package/dist/internal/sanitize-mcp-tool-name.js +30 -0
- package/dist/internal/sdk-runner.d.ts.map +1 -1
- package/dist/internal/sdk-runner.js +6 -2
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +4 -6
- package/dist/internal/shallow-clone.d.ts +94 -39
- package/dist/internal/shallow-clone.d.ts.map +1 -1
- package/dist/internal/shallow-clone.js +188 -68
- package/dist/internal/terminal-style.d.ts +18 -0
- package/dist/internal/terminal-style.d.ts.map +1 -1
- package/dist/internal/terminal-style.js +46 -1
- package/dist/internal/workspace.d.ts +2 -0
- package/dist/internal/workspace.d.ts.map +1 -1
- package/dist/internal/workspace.js +5 -0
- package/dist/playground/assets/index-D_8I9TM0.js +85 -0
- package/dist/playground/assets/index-M3nSMc6_.css +1 -0
- package/dist/playground/index.html +2 -2
- package/dist/tools.d.ts +7 -0
- package/dist/tools.d.ts.map +1 -1
- package/dist/types.d.ts +28 -3
- package/dist/types.d.ts.map +1 -1
- package/docs/concepts.md +4 -4
- package/docs/guides/mcp-oauth.md +3 -1
- package/docs/reference/agent-config.md +11 -12
- package/docs/reference/cli.md +16 -8
- package/docs/reference/connections.md +44 -26
- package/docs/reference/sessions.md +2 -2
- package/docs/reference/tools.md +1 -1
- package/docs/scaffolding-agents.md +14 -6
- package/docs/troubleshooting.md +3 -2
- package/package.json +6 -1
- package/scripts/install-cursor-skills.mjs +36 -0
- package/skills/ab/SKILL.md +1 -1
- package/skills/create-agent/SKILL.md +13 -10
- package/skills/debug/SKILL.md +3 -2
- package/skills/evals/SKILL.md +1 -1
- package/skills/framework-map/SKILL.md +7 -7
- package/skills/github/SKILL.md +1 -1
- package/skills/hillclimb/SKILL.md +1 -1
- package/skills/mcp-auth/SKILL.md +9 -7
- package/skills/otel/SKILL.md +1 -1
- package/skills/setup-slack/SKILL.md +1 -1
- package/src/bin/agent-serve.ts +10 -7
- package/src/channels/github/api.ts +6 -1
- package/src/channels/github/binding.ts +21 -0
- package/src/channels/github/checks.ts +179 -0
- package/src/channels/github/cursor-account.ts +9 -6
- package/src/channels/github/index.ts +1 -0
- package/src/channels/github/types.ts +8 -0
- package/src/channels/slack/manifest.ts +8 -10
- package/src/channels/slack/types.ts +2 -2
- package/src/connections.ts +17 -5
- package/src/internal/advertise-tools.ts +72 -23
- package/src/internal/cli-deploy.ts +4 -15
- package/src/internal/cli-skills.ts +10 -2
- package/src/internal/convert-automation/convert-workflow.ts +2 -11
- package/src/internal/cursor/account-mcp.ts +208 -73
- package/src/internal/cursor/backend-client.ts +45 -11
- package/src/internal/cursor-account-mcp-auth.ts +83 -0
- package/src/internal/deploy-client.ts +0 -10
- package/src/internal/deploy-manifest.ts +33 -39
- package/src/internal/deployment-scm-event-stream.ts +17 -1
- package/src/internal/discovery.ts +47 -3
- package/src/internal/init-project.ts +7 -133
- package/src/internal/init-scaffold.ts +176 -0
- package/src/internal/inline-stdio-mcp.ts +13 -0
- package/src/internal/install-cursor-skills.ts +204 -49
- package/src/internal/json-schema.ts +24 -3
- package/src/internal/mcp-endpoint.ts +6 -0
- package/src/internal/mcp-host.ts +4 -0
- package/src/internal/mcp-oauth.ts +55 -1
- package/src/internal/package-inline-stdio.ts +5 -1
- package/src/internal/review-comments.ts +245 -0
- package/src/internal/sanitize-mcp-tool-name.ts +33 -0
- package/src/internal/sdk-runner.ts +6 -3
- package/src/internal/session-engine.ts +7 -0
- package/src/internal/shallow-clone.ts +293 -105
- package/src/internal/terminal-style.ts +67 -1
- package/src/internal/workspace.ts +6 -0
- package/src/tools.ts +7 -0
- package/src/types.ts +32 -4
- package/templates/agentic-owners/agent/agent.ts +3 -0
- package/templates/demo/agent/agent.ts +3 -0
- package/templates/security-reviewer/agent/agent.ts +3 -0
- package/templates/triage/agent/agent.ts +3 -0
- package/dist/docs/assets/chunks/@localSearchIndexroot.DvUR3lv9.js +0 -1
- package/dist/docs/assets/scaffolding-agents.md.CrWSA0Ko.js +0 -1
- package/dist/docs/assets/troubleshooting.md.CuVztCKs.js +0 -1
- package/dist/playground/assets/index-CoL7xCJl.css +0 -1
- package/dist/playground/assets/index-yxs1heea.js +0 -85
- /package/dist/docs/assets/{concepts.md.CqOsxbMU.lean.js → concepts.md.BXAm6G-C.lean.js} +0 -0
- /package/dist/docs/assets/{guides_mcp-oauth.md.C7G7IykG.lean.js → guides_mcp-oauth.md.CzEB6RaG.lean.js} +0 -0
- /package/dist/docs/assets/{reference_sessions.md.DBVFi2Sx.lean.js → reference_sessions.md.B0DdlM-K.lean.js} +0 -0
- /package/dist/docs/assets/{reference_tools.md.Wmvb7Lob.lean.js → reference_tools.md.DTg_kEsx.lean.js} +0 -0
- /package/dist/docs/assets/{troubleshooting.md.CuVztCKs.lean.js → troubleshooting.md.DQ-hYuZT.lean.js} +0 -0
|
@@ -51,6 +51,12 @@ export interface AccountMcpTool {
|
|
|
51
51
|
description: string;
|
|
52
52
|
/** JSON Schema for the tool input (defaulted when the server omits it). */
|
|
53
53
|
inputSchema: Record<string, unknown>;
|
|
54
|
+
/**
|
|
55
|
+
* JSON Schema for the tool's structured output. Present only when the
|
|
56
|
+
* connector's server declares one — absent stays absent (never defaulted),
|
|
57
|
+
* matching the optional MCP `Tool.outputSchema` field.
|
|
58
|
+
*/
|
|
59
|
+
outputSchema?: Record<string, unknown>;
|
|
54
60
|
}
|
|
55
61
|
export interface AccountMcpServer {
|
|
56
62
|
serverIdentifier: string;
|
|
@@ -112,16 +118,15 @@ export declare class CursorBackendClient {
|
|
|
112
118
|
teamId?: number;
|
|
113
119
|
}): Promise<AvailableMcpServer[]>;
|
|
114
120
|
/**
|
|
115
|
-
* Probe connectors
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
* probes flip `requiresAuth` off.
|
|
121
|
+
* Probe connectors and mint OAuth `authUrl`s where authorization is
|
|
122
|
+
* needed. With `serviceAccountId`, this is the dashboard Authenticate
|
|
123
|
+
* flow for a hosted deployment's service account. Omit it to probe the
|
|
124
|
+
* signed-in user (local `serve` preflight).
|
|
120
125
|
*/
|
|
121
126
|
checkHttpMcpStatus(args: {
|
|
122
127
|
serverIds: number[];
|
|
123
128
|
oauthRedirectUri: string;
|
|
124
|
-
serviceAccountId
|
|
129
|
+
serviceAccountId?: string;
|
|
125
130
|
}): Promise<McpConnectorStatus[]>;
|
|
126
131
|
/** Mint a short-lived GitHub token scoped to the requested repositories. */
|
|
127
132
|
getGithubToken(repos: readonly string[], options?: {
|
|
@@ -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;AAaxB,qBAAa,kBAAmB,SAAQ,KAAK;IAGzC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM;IACxB,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM;IAHhC,YACE,OAAO,EAAE,MAAM,EACN,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,YAAY,CAAC,EAAE,MAAM,YAAA,EAI/B;CACF;AAMD,QAAA,MAAM,mBAAmB,EAAE,CAAC,CAAC,SAAS,CACpC;IACE,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAClC,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACtC,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IACnC,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;CACtC,EACD,OAAO,CAQP,CAAC;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAMjE,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"backend-client.d.ts","sourceRoot":"","sources":["../../../src/internal/cursor/backend-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,6 +66,8 @@ const mcpToolSchema = z.object({
|
|
|
66
66
|
description: z.string().optional(),
|
|
67
67
|
/** `google.protobuf.Value` — an arbitrary JSON Schema object. */
|
|
68
68
|
inputSchema: z.unknown().optional(),
|
|
69
|
+
/** Flat JSON-string output schema (`output_schema_json` on the proto). */
|
|
70
|
+
outputSchemaJson: z.string().optional(),
|
|
69
71
|
});
|
|
70
72
|
const getAvailableMcpServersResponseSchema = z.object({
|
|
71
73
|
servers: z
|
|
@@ -203,11 +205,11 @@ export class CursorBackendClient {
|
|
|
203
205
|
return ((_a = parsed.servers) !== null && _a !== void 0 ? _a : []).map((server) => { var _a; return ({
|
|
204
206
|
serverIdentifier: server.serverIdentifier,
|
|
205
207
|
status: server.status,
|
|
206
|
-
tools: ((_a = server.tools) !== null && _a !== void 0 ? _a : []).map((tool) => {
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
inputSchema: normalizeInputSchema(tool.inputSchema),
|
|
210
|
-
})
|
|
208
|
+
tools: ((_a = server.tools) !== null && _a !== void 0 ? _a : []).map((tool) => {
|
|
209
|
+
var _a;
|
|
210
|
+
const outputSchema = parseOutputSchemaJson(tool.outputSchemaJson);
|
|
211
|
+
return Object.assign({ name: tool.name, description: (_a = tool.description) !== null && _a !== void 0 ? _a : "", inputSchema: normalizeInputSchema(tool.inputSchema) }, (outputSchema === undefined ? {} : { outputSchema }));
|
|
212
|
+
}),
|
|
211
213
|
}); });
|
|
212
214
|
});
|
|
213
215
|
}
|
|
@@ -252,11 +254,10 @@ export class CursorBackendClient {
|
|
|
252
254
|
});
|
|
253
255
|
}
|
|
254
256
|
/**
|
|
255
|
-
* Probe connectors
|
|
256
|
-
*
|
|
257
|
-
*
|
|
258
|
-
*
|
|
259
|
-
* probes flip `requiresAuth` off.
|
|
257
|
+
* Probe connectors and mint OAuth `authUrl`s where authorization is
|
|
258
|
+
* needed. With `serviceAccountId`, this is the dashboard Authenticate
|
|
259
|
+
* flow for a hosted deployment's service account. Omit it to probe the
|
|
260
|
+
* signed-in user (local `serve` preflight).
|
|
260
261
|
*/
|
|
261
262
|
checkHttpMcpStatus(args) {
|
|
262
263
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -495,6 +496,27 @@ function normalizeInputSchema(schema) {
|
|
|
495
496
|
}
|
|
496
497
|
return { type: "object", properties: {} };
|
|
497
498
|
}
|
|
499
|
+
/**
|
|
500
|
+
* Parse the proto's flat-JSON-string output schema. Unlike
|
|
501
|
+
* {@link normalizeInputSchema} there is no fallback: outputSchema is optional
|
|
502
|
+
* on the MCP wire, so absence (or malformed JSON crossing the backend
|
|
503
|
+
* boundary) means omitted.
|
|
504
|
+
*/
|
|
505
|
+
function parseOutputSchemaJson(outputSchemaJson) {
|
|
506
|
+
if (outputSchemaJson === undefined) {
|
|
507
|
+
return undefined;
|
|
508
|
+
}
|
|
509
|
+
let parsed;
|
|
510
|
+
try {
|
|
511
|
+
parsed = JSON.parse(outputSchemaJson);
|
|
512
|
+
}
|
|
513
|
+
catch (_a) {
|
|
514
|
+
return undefined;
|
|
515
|
+
}
|
|
516
|
+
return typeof parsed === "object" && parsed !== null && !Array.isArray(parsed)
|
|
517
|
+
? parsed
|
|
518
|
+
: undefined;
|
|
519
|
+
}
|
|
498
520
|
function toCallResult(result) {
|
|
499
521
|
var _a;
|
|
500
522
|
if (result.success !== undefined) {
|
|
@@ -52,4 +52,15 @@ export interface AuthorizeCursorAccountConnectorsResult {
|
|
|
52
52
|
* each (sequentially), polled until the backend stores the token.
|
|
53
53
|
*/
|
|
54
54
|
export declare function authorizeCursorAccountConnectors(args: AuthorizeCursorAccountConnectorsArgs): Promise<AuthorizeCursorAccountConnectorsResult>;
|
|
55
|
+
/**
|
|
56
|
+
* Mint OAuth `authUrl`s for connectors matching `identifiers` (name or
|
|
57
|
+
* `serverIdentifier`). Omit `serviceAccountId` to probe the signed-in user
|
|
58
|
+
* (local `serve` preflight). Failures return an empty map so the caller
|
|
59
|
+
* can fall back to the dashboard URL.
|
|
60
|
+
*/
|
|
61
|
+
export declare function probeConnectorAuthUrls(args: {
|
|
62
|
+
client: Pick<CursorBackendClient, "getAvailableMcpServers" | "checkHttpMcpStatus">;
|
|
63
|
+
identifiers: readonly string[];
|
|
64
|
+
serviceAccountId?: string;
|
|
65
|
+
}): Promise<Map<string, string>>;
|
|
55
66
|
//# sourceMappingURL=cursor-account-mcp-auth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cursor-account-mcp-auth.d.ts","sourceRoot":"","sources":["../../src/internal/cursor-account-mcp-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAEV,mBAAmB,EAEpB,MAAM,4BAA4B,CAAC;AAOpC,iFAAiF;AACjF,wBAAgB,mBAAmB,IAAI,MAAM,CAM5C;AAED,MAAM,WAAW,oCAAoC;IACnD,aAAa,EAAE,IAAI,CACjB,mBAAmB,EACnB,wBAAwB,GAAG,oBAAoB,CAChD,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,gBAAgB,EAAE,MAAM,CAAC;IACzB,sCAAsC;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/B,yEAAyE;IACzE,WAAW,EAAE,OAAO,CAAC;IACrB,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,kBAAkB;IAClB,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,sCAAsC;IACrD,0DAA0D;IAC1D,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gDAAgD;IAChD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,8CAA8C;IAC9C,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjD;AAMD;;;;GAIG;AACH,wBAAsB,gCAAgC,CACpD,IAAI,EAAE,oCAAoC,GACzC,OAAO,CAAC,sCAAsC,CAAC,CA8FjD"}
|
|
1
|
+
{"version":3,"file":"cursor-account-mcp-auth.d.ts","sourceRoot":"","sources":["../../src/internal/cursor-account-mcp-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAEV,mBAAmB,EAEpB,MAAM,4BAA4B,CAAC;AAOpC,iFAAiF;AACjF,wBAAgB,mBAAmB,IAAI,MAAM,CAM5C;AAED,MAAM,WAAW,oCAAoC;IACnD,aAAa,EAAE,IAAI,CACjB,mBAAmB,EACnB,wBAAwB,GAAG,oBAAoB,CAChD,CAAC;IACF,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,gBAAgB,EAAE,MAAM,CAAC;IACzB,sCAAsC;IACtC,cAAc,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/B,yEAAyE;IACzE,WAAW,EAAE,OAAO,CAAC;IACrB,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,kBAAkB;IAClB,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,sCAAsC;IACrD,0DAA0D;IAC1D,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,gDAAgD;IAChD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,8CAA8C;IAC9C,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjD;AAMD;;;;GAIG;AACH,wBAAsB,gCAAgC,CACpD,IAAI,EAAE,oCAAoC,GACzC,OAAO,CAAC,sCAAsC,CAAC,CA8FjD;AA2DD;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE;IACjD,MAAM,EAAE,IAAI,CACV,mBAAmB,EACnB,wBAAwB,GAAG,oBAAoB,CAChD,CAAC;IACF,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA0C/B"}
|
|
@@ -143,6 +143,75 @@ function selectConnectors(available, filter) {
|
|
|
143
143
|
}
|
|
144
144
|
return { servers, unmatched };
|
|
145
145
|
}
|
|
146
|
+
function uniqueConnectorMatch(available, identifier) {
|
|
147
|
+
const wanted = identifier.trim().toLowerCase();
|
|
148
|
+
if (wanted === "") {
|
|
149
|
+
return undefined;
|
|
150
|
+
}
|
|
151
|
+
const byIdentifier = available.filter((server) => { var _a; return ((_a = server.serverIdentifier) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === wanted; });
|
|
152
|
+
if (byIdentifier.length === 1) {
|
|
153
|
+
return byIdentifier[0];
|
|
154
|
+
}
|
|
155
|
+
if (byIdentifier.length > 1) {
|
|
156
|
+
return undefined;
|
|
157
|
+
}
|
|
158
|
+
const byName = available.filter((server) => server.name.toLowerCase() === wanted);
|
|
159
|
+
if (byName.length === 1) {
|
|
160
|
+
return byName[0];
|
|
161
|
+
}
|
|
162
|
+
return undefined;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Mint OAuth `authUrl`s for connectors matching `identifiers` (name or
|
|
166
|
+
* `serverIdentifier`). Omit `serviceAccountId` to probe the signed-in user
|
|
167
|
+
* (local `serve` preflight). Failures return an empty map so the caller
|
|
168
|
+
* can fall back to the dashboard URL.
|
|
169
|
+
*/
|
|
170
|
+
export function probeConnectorAuthUrls(args) {
|
|
171
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
172
|
+
var _a, _b;
|
|
173
|
+
const urls = new Map();
|
|
174
|
+
if (args.identifiers.length === 0) {
|
|
175
|
+
return urls;
|
|
176
|
+
}
|
|
177
|
+
try {
|
|
178
|
+
const available = yield args.client.getAvailableMcpServers();
|
|
179
|
+
const matched = [];
|
|
180
|
+
const seen = new Set();
|
|
181
|
+
for (const identifier of args.identifiers) {
|
|
182
|
+
const match = uniqueConnectorMatch(available, identifier);
|
|
183
|
+
if (match === undefined || seen.has(match.id)) {
|
|
184
|
+
continue;
|
|
185
|
+
}
|
|
186
|
+
seen.add(match.id);
|
|
187
|
+
matched.push(match);
|
|
188
|
+
}
|
|
189
|
+
if (matched.length === 0) {
|
|
190
|
+
return urls;
|
|
191
|
+
}
|
|
192
|
+
const statuses = yield args.client.checkHttpMcpStatus({
|
|
193
|
+
serverIds: matched.map((server) => server.id),
|
|
194
|
+
oauthRedirectUri: mcpOauthRedirectUri(),
|
|
195
|
+
serviceAccountId: args.serviceAccountId,
|
|
196
|
+
});
|
|
197
|
+
const statusById = new Map(statuses.map((status) => [status.id, status]));
|
|
198
|
+
for (const identifier of args.identifiers) {
|
|
199
|
+
const match = uniqueConnectorMatch(available, identifier);
|
|
200
|
+
if (match === undefined) {
|
|
201
|
+
continue;
|
|
202
|
+
}
|
|
203
|
+
const authUrl = (_b = (_a = statusById.get(match.id)) === null || _a === void 0 ? void 0 : _a.authUrl) === null || _b === void 0 ? void 0 : _b.trim();
|
|
204
|
+
if (authUrl !== undefined && authUrl !== "") {
|
|
205
|
+
urls.set(identifier, authUrl);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
return urls;
|
|
209
|
+
}
|
|
210
|
+
catch (_c) {
|
|
211
|
+
return urls;
|
|
212
|
+
}
|
|
213
|
+
});
|
|
214
|
+
}
|
|
146
215
|
function pollUntilAuthorized(args) {
|
|
147
216
|
return __awaiter(this, void 0, void 0, function* () {
|
|
148
217
|
const deadline = Date.now() + args.pollTimeoutMs;
|
|
@@ -9,7 +9,6 @@
|
|
|
9
9
|
* The endpoints are gated on the `agent_serve_mvp` Statsig gate and 404
|
|
10
10
|
* when it is off — the error mapping says so instead of "not found".
|
|
11
11
|
*/
|
|
12
|
-
import type { AgentDeployManifestV1 } from "./deploy-manifest.js";
|
|
13
12
|
export type DeploymentStatus = "pending" | "deploying" | "running" | "degraded" | "failed" | "stopping" | "stopped" | "deleting";
|
|
14
13
|
/** Customer-safe deploy progress (no hosting phase / infra names). */
|
|
15
14
|
export type DeploymentProgress = "queued" | "preparing" | "creating" | "building" | "starting" | "finalizing" | "running" | "failed" | "stopping" | "stopped" | "deleting" | "degraded";
|
|
@@ -38,12 +37,6 @@ export type DeploySource = {
|
|
|
38
37
|
* `X-Agent-Alias-Token` (channels authored with `publicEndpoint()`).
|
|
39
38
|
*/
|
|
40
39
|
publicRoutePaths?: string[];
|
|
41
|
-
/**
|
|
42
|
-
* Offline deploy manifest (Wd): derived declarations + `/v1/info`
|
|
43
|
-
* payload, extracted at deploy time with no VM. Optional — servers that
|
|
44
|
-
* predate manifest storage strip unknown fields.
|
|
45
|
-
*/
|
|
46
|
-
manifest?: AgentDeployManifestV1;
|
|
47
40
|
};
|
|
48
41
|
/** Returns a human error message, or undefined when the slug is valid. */
|
|
49
42
|
export declare function validateDeploymentSlug(slug: string): string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-client.d.ts","sourceRoot":"","sources":["../../src/internal/deploy-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"deploy-client.d.ts","sourceRoot":"","sources":["../../src/internal/deploy-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -227,7 +227,7 @@ export class AgentServeDeployClient {
|
|
|
227
227
|
}
|
|
228
228
|
// Only the git-ref member exists today; a future artifact member would
|
|
229
229
|
// upload the build first and post a different body from this branch.
|
|
230
|
-
const body = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(
|
|
230
|
+
const body = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ teamId: args.teamId, slug: args.slug, gitRepoUrl: args.source.gitRepoUrl }, (args.source.gitRef === undefined
|
|
231
231
|
? {}
|
|
232
232
|
: { gitRef: args.source.gitRef })), (args.source.agentPath === undefined
|
|
233
233
|
? {}
|
|
@@ -237,9 +237,7 @@ export class AgentServeDeployClient {
|
|
|
237
237
|
? {}
|
|
238
238
|
: { egressAllowedDomains: args.source.egressAllowedDomains })), {
|
|
239
239
|
// JSON.stringify drops undefined keys.
|
|
240
|
-
publicRoutePaths: args.source.publicRoutePaths
|
|
241
|
-
? {}
|
|
242
|
-
: { manifest: args.source.manifest })), { template: args.template });
|
|
240
|
+
publicRoutePaths: args.source.publicRoutePaths, template: args.template });
|
|
243
241
|
const send = () => this.request({
|
|
244
242
|
method: "POST",
|
|
245
243
|
path: "/internal/agent-serve/deployments",
|
|
@@ -11,49 +11,40 @@
|
|
|
11
11
|
* Two layers with different stability contracts:
|
|
12
12
|
*
|
|
13
13
|
* - `declarations` is the **versioned wire contract** consumed by the
|
|
14
|
-
* control plane (Wd-2):
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* of the code.
|
|
14
|
+
* control plane (Wd-2): per-channel event capabilities, egress domains,
|
|
15
|
+
* and public route paths. Validated by {@link agentDeployManifestV1Schema};
|
|
16
|
+
* the CP stores these as columns / column views. Repos are deliberately
|
|
17
|
+
* NOT here — which repos a deployment watches is per-instance deploy
|
|
18
|
+
* configuration, not a property of the code.
|
|
20
19
|
* - `info` is the full static project description — the same payload the
|
|
21
20
|
* engine serves at `GET /v1/info` (`projectInfo`). Stored opaquely by the
|
|
22
21
|
* CP so `/v1/info`-class reads can be served for offline deployments
|
|
23
22
|
* (Wd-5). Its shape evolves with the SDK and is intentionally not pinned
|
|
24
23
|
* by the wire schema beyond "is an object".
|
|
25
24
|
*
|
|
26
|
-
* Event derivation note: each mounted
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* nothing, regardless of the repos configured at deploy time.
|
|
25
|
+
* Event derivation note: each mounted channel publishes its event set in its
|
|
26
|
+
* own `channels[].eventTypes` declaration. A project with no GitHub channel
|
|
27
|
+
* subscribes to no GitHub events, regardless of configured repository scope.
|
|
28
|
+
* Keep that capability per-channel: do not reintroduce a provider-wide event
|
|
29
|
+
* union for control-plane consumers.
|
|
32
30
|
*/
|
|
33
31
|
import type { AgentProject, AgentProjectInfo } from "../types.js";
|
|
34
32
|
export declare const DEPLOY_MANIFEST_VERSION: 1;
|
|
35
33
|
export interface AgentDeployManifestDeclarations {
|
|
36
|
-
/**
|
|
37
|
-
* Union of every mounted GitHub channel's derived webhook events.
|
|
38
|
-
* Absent (not empty) when the project mounts no GitHub channel.
|
|
39
|
-
*/
|
|
40
|
-
githubWebhookEvents?: string[];
|
|
41
34
|
egressDomains: string[];
|
|
42
35
|
publicRoutePaths: string[];
|
|
43
36
|
/** Where this runtime mirrors framework-owned sessions and event chunks. */
|
|
44
37
|
frameworkStorage?: "cursor-hosted" | "other" | "none";
|
|
45
38
|
/**
|
|
46
|
-
* Mounted channels with their kinds
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
* schema field — reserved, deliberately not implemented yet). This is
|
|
51
|
-
* what lets the CP compute workflow/session identity before any engine
|
|
52
|
-
* runs.
|
|
39
|
+
* Mounted channels with their kinds and per-channel event capability.
|
|
40
|
+
* Scope keys are installation config and are never extracted here.
|
|
41
|
+
* Continuation is opt-in: without a deterministic selector key, every
|
|
42
|
+
* inbound event starts a fresh session. Selector encoding remains open.
|
|
53
43
|
*/
|
|
54
44
|
channels: Array<{
|
|
55
45
|
id: string;
|
|
56
46
|
kind?: string;
|
|
47
|
+
eventTypes?: string[];
|
|
57
48
|
}>;
|
|
58
49
|
}
|
|
59
50
|
export interface AgentDeployManifestV1 {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-manifest.d.ts","sourceRoot":"","sources":["../../src/internal/deploy-manifest.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"deploy-manifest.d.ts","sourceRoot":"","sources":["../../src/internal/deploy-manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAIlE,eAAO,MAAM,uBAAuB,EAAE,CAAK,CAAC;AA6B5C,MAAM,WAAW,+BAA+B;IAC9C,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,eAAe,GAAG,OAAO,GAAG,MAAM,CAAC;IACtD;;;;;OAKG;IACH,QAAQ,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;CACvE;AAED,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,CAAC,CAAC;IACnB,6BAA6B;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,+BAA+B,CAAC;IAC9C;;;OAGG;IACH,IAAI,EAAE,gBAAgB,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAChD,qBAAqB,CA2CvB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,OAAO,GACX,qBAAqB,GAAG,SAAS,CAOnC"}
|
|
@@ -11,24 +11,22 @@
|
|
|
11
11
|
* Two layers with different stability contracts:
|
|
12
12
|
*
|
|
13
13
|
* - `declarations` is the **versioned wire contract** consumed by the
|
|
14
|
-
* control plane (Wd-2):
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
* of the code.
|
|
14
|
+
* control plane (Wd-2): per-channel event capabilities, egress domains,
|
|
15
|
+
* and public route paths. Validated by {@link agentDeployManifestV1Schema};
|
|
16
|
+
* the CP stores these as columns / column views. Repos are deliberately
|
|
17
|
+
* NOT here — which repos a deployment watches is per-instance deploy
|
|
18
|
+
* configuration, not a property of the code.
|
|
20
19
|
* - `info` is the full static project description — the same payload the
|
|
21
20
|
* engine serves at `GET /v1/info` (`projectInfo`). Stored opaquely by the
|
|
22
21
|
* CP so `/v1/info`-class reads can be served for offline deployments
|
|
23
22
|
* (Wd-5). Its shape evolves with the SDK and is intentionally not pinned
|
|
24
23
|
* by the wire schema beyond "is an object".
|
|
25
24
|
*
|
|
26
|
-
* Event derivation note: each mounted
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
* nothing, regardless of the repos configured at deploy time.
|
|
25
|
+
* Event derivation note: each mounted channel publishes its event set in its
|
|
26
|
+
* own `channels[].eventTypes` declaration. A project with no GitHub channel
|
|
27
|
+
* subscribes to no GitHub events, regardless of configured repository scope.
|
|
28
|
+
* Keep that capability per-channel: do not reintroduce a provider-wide event
|
|
29
|
+
* union for control-plane consumers.
|
|
32
30
|
*/
|
|
33
31
|
import { z } from "zod";
|
|
34
32
|
import { isPublicEndpointPolicy } from "../channels.js";
|
|
@@ -46,7 +44,6 @@ const agentDeployManifestV1Schema = z.object({
|
|
|
46
44
|
generatedAtMs: z.number().int().nonnegative(),
|
|
47
45
|
cliVersion: z.string().min(1),
|
|
48
46
|
declarations: z.object({
|
|
49
|
-
githubWebhookEvents: z.array(z.string().min(1).max(64)).max(64).optional(),
|
|
50
47
|
egressDomains: z.array(z.string().min(1)).max(64),
|
|
51
48
|
publicRoutePaths: z.array(z.string().min(1)).max(64),
|
|
52
49
|
frameworkStorage: z.enum(["cursor-hosted", "other", "none"]).optional(),
|
|
@@ -54,6 +51,7 @@ const agentDeployManifestV1Schema = z.object({
|
|
|
54
51
|
.array(z.object({
|
|
55
52
|
id: z.string().min(1).max(128),
|
|
56
53
|
kind: z.string().min(1).max(32).optional(),
|
|
54
|
+
eventTypes: z.array(z.string().min(1).max(64)).max(64).optional(),
|
|
57
55
|
}))
|
|
58
56
|
.max(64),
|
|
59
57
|
}),
|
|
@@ -65,14 +63,24 @@ const agentDeployManifestV1Schema = z.object({
|
|
|
65
63
|
* network, no filesystem beyond what `loadAgentProject` already read.
|
|
66
64
|
*/
|
|
67
65
|
export function buildAgentDeployManifest(project, options) {
|
|
68
|
-
var _a
|
|
69
|
-
var _c, _d
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
66
|
+
var _a;
|
|
67
|
+
var _b, _c, _d;
|
|
68
|
+
const channels = project.channels.map((channel) => {
|
|
69
|
+
var _a, _b, _c;
|
|
70
|
+
const kind = (_a = channel.definition.meta) === null || _a === void 0 ? void 0 : _a.kind;
|
|
71
|
+
const githubEvents = (_b = channel.definition.meta) === null || _b === void 0 ? void 0 : _b.githubWebhookEvents;
|
|
72
|
+
const originEvents = (_c = channel.definition.meta) === null || _c === void 0 ? void 0 : _c.originWebhookEvents;
|
|
73
|
+
const eventTypes = githubEvents !== undefined
|
|
74
|
+
? [...githubEvents].sort()
|
|
75
|
+
: originEvents !== undefined
|
|
76
|
+
? [...originEvents].sort()
|
|
77
|
+
: undefined;
|
|
78
|
+
return {
|
|
79
|
+
id: channel.id,
|
|
80
|
+
kind,
|
|
81
|
+
eventTypes,
|
|
82
|
+
};
|
|
83
|
+
});
|
|
76
84
|
// Same mapping as `july deploy` (cli-deploy.ts): channels declared public
|
|
77
85
|
// via `publicEndpoint()` become alias-token-free route prefixes.
|
|
78
86
|
const publicRoutePaths = project.channels
|
|
@@ -80,15 +88,18 @@ export function buildAgentDeployManifest(project, options) {
|
|
|
80
88
|
.map((channel) => `/v1/channels/${channel.id}`);
|
|
81
89
|
return {
|
|
82
90
|
manifestVersion: DEPLOY_MANIFEST_VERSION,
|
|
83
|
-
generatedAtMs: (
|
|
84
|
-
cliVersion: (
|
|
85
|
-
declarations:
|
|
91
|
+
generatedAtMs: (_b = options === null || options === void 0 ? void 0 : options.nowMs) !== null && _b !== void 0 ? _b : Date.now(),
|
|
92
|
+
cliVersion: (_c = options === null || options === void 0 ? void 0 : options.cliVersion) !== null && _c !== void 0 ? _c : packageVersion(),
|
|
93
|
+
declarations: {
|
|
94
|
+
egressDomains: [...((_d = (_a = project.agent.hosting) === null || _a === void 0 ? void 0 : _a.egressDomains) !== null && _d !== void 0 ? _d : [])],
|
|
95
|
+
publicRoutePaths,
|
|
96
|
+
frameworkStorage: project.storage === undefined
|
|
86
97
|
? "none"
|
|
87
98
|
: isCursorHostedStorage(project.storage)
|
|
88
99
|
? "cursor-hosted"
|
|
89
|
-
: "other",
|
|
90
|
-
|
|
91
|
-
|
|
100
|
+
: "other",
|
|
101
|
+
channels,
|
|
102
|
+
},
|
|
92
103
|
info: projectInfo(project),
|
|
93
104
|
};
|
|
94
105
|
}
|
|
@@ -61,10 +61,13 @@ export interface AgentSdkScmEventEnvelope {
|
|
|
61
61
|
}
|
|
62
62
|
/** Unknown envelope shapes return undefined (skipped, forward compat). */
|
|
63
63
|
export declare function parseAgentSdkScmEventEnvelope(value: unknown): AgentSdkScmEventEnvelope | undefined;
|
|
64
|
+
/** Whether a webhook body was self-dispatched by this event stream. */
|
|
65
|
+
export declare function isDeploymentEventStreamPayload(payload: unknown): boolean;
|
|
64
66
|
/**
|
|
65
67
|
* Stub a GitHub-shaped `pull_request` webhook body from an envelope —
|
|
66
68
|
* enough for agent-serve's pull_request Zod schema, plus `installation.id`
|
|
67
|
-
* so the channel's `ctx.installationId` tenant binding keeps working
|
|
69
|
+
* so the channel's `ctx.installationId` tenant binding keeps working, plus
|
|
70
|
+
* the {@link isDeploymentEventStreamPayload} source marker.
|
|
68
71
|
* Pure — exported for tests.
|
|
69
72
|
*/
|
|
70
73
|
export declare function envelopeToGitHubPayload(envelope: AgentSdkScmEventEnvelope): Record<string, unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployment-scm-event-stream.d.ts","sourceRoot":"","sources":["../../src/internal/deployment-scm-event-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AA2BH,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACjC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,uEAAuE;AACvE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,0BAA0B,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAiED,0EAA0E;AAC1E,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,OAAO,GACb,wBAAwB,GAAG,SAAS,CAqCtC;
|
|
1
|
+
{"version":3,"file":"deployment-scm-event-stream.d.ts","sourceRoot":"","sources":["../../src/internal/deployment-scm-event-stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AA2BH,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACjC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,uEAAuE;AACvE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,0BAA0B,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAiED,0EAA0E;AAC1E,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,OAAO,GACb,wBAAwB,GAAG,SAAS,CAqCtC;AA8CD,uEAAuE;AACvE,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAExE;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,wBAAwB,GACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA4BzB;AAmDD,MAAM,WAAW,0BAA0B;IACzC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,0BAA0B;IAC1B,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,mDAAmD;IACnD,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAkB7E;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAeD;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,GAAE,0BAA+B,GACvC,mBAAmB,GAAG,SAAS,CAwLjC"}
|
|
@@ -176,10 +176,23 @@ function parsePollResponse(value) {
|
|
|
176
176
|
gapDetected: value.gapDetected,
|
|
177
177
|
};
|
|
178
178
|
}
|
|
179
|
+
/**
|
|
180
|
+
* Marker key on self-dispatched webhook bodies so the consuming channel can
|
|
181
|
+
* tell stream deliveries apart from other senders (e.g. the serve host's
|
|
182
|
+
* cursorAccount SCM relay). Multi-tenant channels treat this stream as the
|
|
183
|
+
* single source and ignore unmarked deliveries — without that gate, one PR
|
|
184
|
+
* push reached the channel twice (relay + stream) and double-ran reviews.
|
|
185
|
+
*/
|
|
186
|
+
const EVENT_STREAM_PAYLOAD_MARKER = "cursorDeploymentEventStream";
|
|
187
|
+
/** Whether a webhook body was self-dispatched by this event stream. */
|
|
188
|
+
export function isDeploymentEventStreamPayload(payload) {
|
|
189
|
+
return isRecord(payload) && payload[EVENT_STREAM_PAYLOAD_MARKER] === true;
|
|
190
|
+
}
|
|
179
191
|
/**
|
|
180
192
|
* Stub a GitHub-shaped `pull_request` webhook body from an envelope —
|
|
181
193
|
* enough for agent-serve's pull_request Zod schema, plus `installation.id`
|
|
182
|
-
* so the channel's `ctx.installationId` tenant binding keeps working
|
|
194
|
+
* so the channel's `ctx.installationId` tenant binding keeps working, plus
|
|
195
|
+
* the {@link isDeploymentEventStreamPayload} source marker.
|
|
183
196
|
* Pure — exported for tests.
|
|
184
197
|
*/
|
|
185
198
|
export function envelopeToGitHubPayload(envelope) {
|
|
@@ -207,6 +220,7 @@ export function envelopeToGitHubPayload(envelope) {
|
|
|
207
220
|
base: { ref: pr.baseRef, sha: pr.baseSha },
|
|
208
221
|
},
|
|
209
222
|
installation: { id: envelope.installationId },
|
|
223
|
+
[EVENT_STREAM_PAYLOAD_MARKER]: true,
|
|
210
224
|
};
|
|
211
225
|
}
|
|
212
226
|
/** Durable offset snapshot under `<stateDir>/offset.json`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/internal/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAkBH,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,gBAAgB,EAUrB,KAAK,UAAU,EAuBhB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/internal/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAkBH,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,gBAAgB,EAUrB,KAAK,UAAU,EAuBhB,MAAM,aAAa,CAAC;AA+BrB,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,CA6BzD;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,uBAAuB,GAAG;IACjC,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CACtB,GACL,OAAO,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CAAC,CAAC,CAgBzD;AAWD,iFAAiF;AACjF,eAAO,MAAM,cAAc,EAAE,GAAG,CAAC,MAAM,CAIrC,CAAC;AAEH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,YAAY,CAAC,CAmEvB;AAED,qEAAqE;AACrE,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAElE;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,CAOnE;AA2xBD;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAiB3E;AAo2BD,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,gBAAgB,CA4JnE"}
|