@cursor/july 0.1.16 → 0.1.17
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/README.md +9 -4
- package/dist/bin/agent-serve.js +60 -2
- package/dist/channels/slack/api.d.ts.map +1 -1
- package/dist/channels/slack/api.js +13 -3
- package/dist/channels/slack/auth.d.ts +7 -1
- package/dist/channels/slack/auth.d.ts.map +1 -1
- package/dist/channels/slack/auth.js +14 -0
- package/dist/channels/slack/blocks.d.ts +61 -0
- package/dist/channels/slack/blocks.d.ts.map +1 -0
- package/dist/channels/slack/blocks.js +90 -0
- package/dist/channels/slack/defaults.d.ts +2 -0
- package/dist/channels/slack/defaults.d.ts.map +1 -1
- package/dist/channels/slack/defaults.js +29 -3
- package/dist/channels/slack/dispatch.d.ts +3 -17
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/index.d.ts +1 -0
- package/dist/channels/slack/index.d.ts.map +1 -1
- package/dist/channels/slack/index.js +1 -0
- package/dist/channels/slack/interactive.d.ts +39 -3
- package/dist/channels/slack/interactive.d.ts.map +1 -1
- package/dist/channels/slack/interactive.js +152 -7
- package/dist/channels/slack/manifest.d.ts +3 -0
- package/dist/channels/slack/manifest.d.ts.map +1 -1
- package/dist/channels/slack/manifest.js +3 -0
- package/dist/channels/slack/setup.d.ts +4 -1
- package/dist/channels/slack/setup.d.ts.map +1 -1
- package/dist/channels/slack/setup.js +16 -2
- package/dist/channels/slack/slack-channel.d.ts.map +1 -1
- package/dist/channels/slack/slack-channel.js +24 -3
- package/dist/channels/slack/types.d.ts +77 -0
- package/dist/channels/slack/types.d.ts.map +1 -1
- package/dist/connections.d.ts +4 -1
- package/dist/connections.d.ts.map +1 -1
- package/dist/connections.js +4 -1
- package/dist/docs/404.html +2 -2
- package/dist/docs/ab.html +3 -3
- package/dist/docs/assets/{app.DjHC-Ggf.js → app.BbEXr2KO.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.DCBsrfwP.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.DwviwmIq.js → VPLocalSearchBox.DBEi4HDp.js} +1 -1
- package/dist/docs/assets/chunks/{theme.BIpeYSon.js → theme.DGfptcHw.js} +2 -2
- package/dist/docs/assets/{guides_mcp-oauth.md.DqmEOQY1.js → guides_mcp-oauth.md.Dd8EgSem.js} +3 -2
- package/dist/docs/assets/{guides_mcp-oauth.md.DqmEOQY1.lean.js → guides_mcp-oauth.md.Dd8EgSem.lean.js} +1 -1
- package/dist/docs/assets/{guides_slack.md.FWale6Ip.js → guides_slack.md.D_xFKlnF.js} +1 -1
- package/dist/docs/assets/{reference_connections.md.CsSr3rDz.js → reference_connections.md.B9Q3TOve.js} +12 -5
- package/dist/docs/assets/{reference_connections.md.CsSr3rDz.lean.js → reference_connections.md.B9Q3TOve.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/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/github.html +3 -3
- package/dist/docs/guides/human-in-the-loop.html +3 -3
- package/dist/docs/guides/mcp-oauth.html +6 -5
- package/dist/docs/guides/slack.html +5 -5
- 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 +3 -3
- package/dist/docs/reference/channels.html +3 -3
- package/dist/docs/reference/cli.html +3 -3
- package/dist/docs/reference/connections.html +14 -7
- 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 +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/evals/assertions.d.ts +190 -0
- package/dist/evals/assertions.d.ts.map +1 -0
- package/dist/evals/assertions.js +461 -0
- package/dist/evals/expect.d.ts +95 -0
- package/dist/evals/expect.d.ts.map +1 -0
- package/dist/evals/expect.js +194 -0
- package/dist/evals/judge.d.ts +133 -0
- package/dist/evals/judge.d.ts.map +1 -0
- package/dist/evals/judge.js +228 -0
- package/dist/evals/loaders.d.ts +51 -0
- package/dist/evals/loaders.d.ts.map +1 -0
- package/dist/evals/loaders.js +124 -0
- package/dist/evals/matchers.d.ts +95 -0
- package/dist/evals/matchers.d.ts.map +1 -0
- package/dist/evals/matchers.js +145 -0
- package/dist/evals/reporters.d.ts +70 -0
- package/dist/evals/reporters.d.ts.map +1 -0
- package/dist/evals/reporters.js +221 -0
- package/dist/evals/results.d.ts +103 -0
- package/dist/evals/results.d.ts.map +1 -0
- package/dist/evals/results.js +28 -0
- package/dist/evals/run-facts.d.ts +77 -0
- package/dist/evals/run-facts.d.ts.map +1 -0
- package/dist/evals/run-facts.js +187 -0
- package/dist/evals.d.ts +118 -31
- package/dist/evals.d.ts.map +1 -1
- package/dist/evals.js +46 -12
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/internal/cli-ax.d.ts +27 -0
- package/dist/internal/cli-ax.d.ts.map +1 -1
- package/dist/internal/cli-ax.js +90 -12
- package/dist/internal/cli-mcp.d.ts +8 -0
- package/dist/internal/cli-mcp.d.ts.map +1 -1
- package/dist/internal/cli-mcp.js +98 -0
- package/dist/internal/cli-slack.d.ts +29 -1
- package/dist/internal/cli-slack.d.ts.map +1 -1
- package/dist/internal/cli-slack.js +777 -12
- package/dist/internal/deploy-client.d.ts +7 -0
- package/dist/internal/deploy-client.d.ts.map +1 -1
- package/dist/internal/deploy-client.js +9 -0
- package/dist/internal/discovery.d.ts.map +1 -1
- package/dist/internal/discovery.js +29 -9
- package/dist/internal/distribution.d.ts.map +1 -1
- package/dist/internal/distribution.js +2 -0
- package/dist/internal/eval-judge-model.d.ts +59 -0
- package/dist/internal/eval-judge-model.d.ts.map +1 -0
- package/dist/internal/eval-judge-model.js +131 -0
- package/dist/internal/eval-run-store.d.ts.map +1 -1
- package/dist/internal/eval-run-store.js +12 -20
- package/dist/internal/eval-runner.d.ts +31 -25
- package/dist/internal/eval-runner.d.ts.map +1 -1
- package/dist/internal/eval-runner.js +329 -126
- package/dist/internal/evals-client.d.ts.map +1 -1
- package/dist/internal/evals-client.js +4 -1
- package/dist/internal/local-env.d.ts +8 -0
- package/dist/internal/local-env.d.ts.map +1 -0
- package/dist/internal/local-env.js +47 -0
- package/dist/internal/playground/static.d.ts +3 -0
- package/dist/internal/playground/static.d.ts.map +1 -1
- package/dist/internal/playground/static.js +3 -0
- package/dist/internal/run-client.d.ts +15 -0
- package/dist/internal/run-client.d.ts.map +1 -1
- package/dist/internal/run-client.js +3 -2
- package/dist/internal/sdk-runner.d.ts +36 -1
- package/dist/internal/sdk-runner.d.ts.map +1 -1
- package/dist/internal/sdk-runner.js +65 -25
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +10 -1
- package/dist/internal/session-engine.d.ts +18 -5
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +72 -19
- package/dist/internal/slack-provision-client.d.ts +130 -0
- package/dist/internal/slack-provision-client.d.ts.map +1 -0
- package/dist/internal/slack-provision-client.js +284 -0
- package/dist/playground/assets/cursor-icons-16-f_W_ogc-.woff2 +0 -0
- package/dist/playground/assets/index-CidizGZv.css +1 -0
- package/dist/playground/assets/index-DNqirsrK.js +85 -0
- package/dist/playground/index.html +2 -2
- package/dist/types.d.ts +70 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +26 -0
- package/docs/guides/mcp-oauth.md +10 -5
- package/docs/guides/slack.md +3 -2
- package/docs/reference/connections.md +28 -18
- package/package.json +20 -2
- package/skills/create-agent/SKILL.md +15 -7
- package/skills/debug/SKILL.md +3 -1
- package/skills/mcp-auth/SKILL.md +1 -1
- package/skills/setup-slack/SKILL.md +173 -11
- package/src/bin/agent-serve.ts +63 -2
- package/src/channels/slack/api.ts +16 -3
- package/src/channels/slack/auth.ts +16 -1
- package/src/channels/slack/blocks.ts +139 -0
- package/src/channels/slack/defaults.ts +32 -4
- package/src/channels/slack/dispatch.ts +3 -18
- package/src/channels/slack/index.ts +1 -0
- package/src/channels/slack/interactive.ts +183 -19
- package/src/channels/slack/manifest.ts +3 -0
- package/src/channels/slack/setup.ts +16 -2
- package/src/channels/slack/slack-channel.ts +37 -6
- package/src/channels/slack/types.ts +89 -0
- package/src/connections.ts +4 -1
- package/src/evals/assertions.ts +704 -0
- package/src/evals/expect.ts +272 -0
- package/src/evals/judge.ts +346 -0
- package/src/evals/loaders.ts +113 -0
- package/src/evals/matchers.ts +246 -0
- package/src/evals/reporters.ts +274 -0
- package/src/evals/results.ts +132 -0
- package/src/evals/run-facts.ts +274 -0
- package/src/evals.ts +205 -42
- package/src/index.ts +2 -0
- package/src/internal/cli-ax.ts +134 -15
- package/src/internal/cli-mcp.ts +118 -5
- package/src/internal/cli-slack.ts +993 -15
- package/src/internal/deploy-client.ts +10 -0
- package/src/internal/discovery.ts +31 -5
- package/src/internal/distribution.ts +2 -0
- package/src/internal/eval-judge-model.ts +148 -0
- package/src/internal/eval-run-store.ts +10 -14
- package/src/internal/eval-runner.ts +460 -214
- package/src/internal/evals-client.ts +5 -0
- package/src/internal/local-env.ts +53 -0
- package/src/internal/playground/static.ts +3 -0
- package/src/internal/run-client.ts +17 -1
- package/src/internal/sdk-runner.ts +103 -22
- package/src/internal/server.ts +10 -0
- package/src/internal/session-engine.ts +89 -21
- package/src/internal/slack-provision-client.ts +438 -0
- package/src/types.ts +92 -4
- package/dist/channels/slack/post-update-delivery.d.ts +0 -85
- package/dist/channels/slack/post-update-delivery.d.ts.map +0 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.DZtu0ZIc.js +0 -1
- package/dist/internal/json-dir-store.d.ts +0 -32
- package/dist/internal/json-dir-store.d.ts.map +0 -1
- package/dist/internal/persistence-coordinator.d.ts +0 -127
- package/dist/internal/persistence-coordinator.d.ts.map +0 -1
- package/dist/persistence.d.ts +0 -184
- package/dist/persistence.d.ts.map +0 -1
- package/dist/playground/assets/cursor-icons-16-CQ50JpfO.woff2 +0 -0
- package/dist/playground/assets/index-Bwl4Onx4.js +0 -85
- package/dist/playground/assets/index-ByV4nfch.css +0 -1
- /package/dist/docs/assets/{guides_slack.md.FWale6Ip.lean.js → guides_slack.md.D_xFKlnF.lean.js} +0 -0
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
* stdout is reserved for the MCP wire in serve mode; all logging goes to
|
|
26
26
|
* stderr.
|
|
27
27
|
*/
|
|
28
|
+
import { resolveDeployAuth } from "./cli-deploy.js";
|
|
28
29
|
import { resolveProdTarget } from "./resolve-prod-target.js";
|
|
29
30
|
export interface McpCliOptions {
|
|
30
31
|
dir: string;
|
|
@@ -43,9 +44,16 @@ export interface McpCliOptions {
|
|
|
43
44
|
print?: boolean;
|
|
44
45
|
/** `install`: machine-readable output. */
|
|
45
46
|
json?: boolean;
|
|
47
|
+
/**
|
|
48
|
+
* `install --prod`: write a REMOTE HTTP entry pointing at the stable Cursor
|
|
49
|
+
* MCP gateway (`<api>/…/mcp/<team>/<slug>`) instead of the local stdio
|
|
50
|
+
* proxy. For remote-only MCP hosts (Glass) that cannot spawn stdio.
|
|
51
|
+
*/
|
|
52
|
+
remote?: boolean;
|
|
46
53
|
/** Injected seams for tests. */
|
|
47
54
|
fetchImpl?: typeof fetch;
|
|
48
55
|
resolveProdTargetImpl?: typeof resolveProdTarget;
|
|
56
|
+
resolveDeployAuthImpl?: typeof resolveDeployAuth;
|
|
49
57
|
stdin?: NodeJS.ReadableStream;
|
|
50
58
|
stdout?: {
|
|
51
59
|
write(chunk: string): unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-mcp.d.ts","sourceRoot":"","sources":["../../src/internal/cli-mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;
|
|
1
|
+
{"version":3,"file":"cli-mcp.d.ts","sourceRoot":"","sources":["../../src/internal/cli-mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAKH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGpD,OAAO,EAGL,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AA0BlC,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sEAAsE;IACtE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gCAAgC;IAChC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,qBAAqB,CAAC,EAAE,OAAO,iBAAiB,CAAC;IACjD,qBAAqB,CAAC,EAAE,OAAO,iBAAiB,CAAC;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;IAC9B,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IAC3C,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,wBAAsB,MAAM,CAC1B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,aAAa,GAAG;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GACA,OAAO,CAAC,MAAM,CAAC,CAiCjB;AAMD,wBAAsB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAkFzE;AAwRD,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CA4G3E;AAoGD,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAC/B,IAAI,GAAE,MAAsC,GAC3C,MAAM,CAGR;AAqED,iFAAiF;AACjF,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQnD"}
|
package/dist/internal/cli-mcp.js
CHANGED
|
@@ -37,6 +37,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
37
37
|
import { mkdir, readFile, writeFile } from "node:fs/promises";
|
|
38
38
|
import { homedir } from "node:os";
|
|
39
39
|
import { dirname, join } from "node:path";
|
|
40
|
+
import { resolveDeployAuth } from "./cli-deploy.js";
|
|
41
|
+
import { DeployApiError } from "./deploy-client.js";
|
|
40
42
|
import { CLI_COMMAND_NAME as CLI, LOG_PREFIX } from "./distribution.js";
|
|
41
43
|
import { ProdTargetError, resolveProdSlug, resolveProdTarget, } from "./resolve-prod-target.js";
|
|
42
44
|
/** Mount path of the MCP surface relative to an agent base URL. */
|
|
@@ -388,6 +390,13 @@ export function cmdMcpInstall(options) {
|
|
|
388
390
|
err("--prod and --url are mutually exclusive\n");
|
|
389
391
|
return 1;
|
|
390
392
|
}
|
|
393
|
+
if (options.remote === true) {
|
|
394
|
+
if (options.prod !== true) {
|
|
395
|
+
err("--remote requires --prod (the hosted deployment MCP gateway)\n");
|
|
396
|
+
return 1;
|
|
397
|
+
}
|
|
398
|
+
return cmdMcpInstallRemote(options);
|
|
399
|
+
}
|
|
391
400
|
let name;
|
|
392
401
|
let entry;
|
|
393
402
|
if (options.prod === true) {
|
|
@@ -475,6 +484,95 @@ export function cmdMcpInstall(options) {
|
|
|
475
484
|
return 0;
|
|
476
485
|
});
|
|
477
486
|
}
|
|
487
|
+
/**
|
|
488
|
+
* `mcp install --prod --remote` — write a REMOTE HTTP entry pointing at the
|
|
489
|
+
* stable Cursor MCP gateway for the hosted deployment, for MCP hosts that
|
|
490
|
+
* cannot spawn the stdio proxy (Glass / Sand). The gateway mints/refreshes
|
|
491
|
+
* engineAccess server-side, so the entry never carries a pod hostname or a
|
|
492
|
+
* short-lived port token — only the durable, stable gateway URL.
|
|
493
|
+
*
|
|
494
|
+
* Auth: this headless/CLI entry sends the `agentkit login` API key as a
|
|
495
|
+
* bearer against the user-API-key gateway surface. That key is written to
|
|
496
|
+
* `mcp.json` in plain text (flagged below); a signed-in Cursor client
|
|
497
|
+
* (Glass) can instead use the session gateway surface with no header at all
|
|
498
|
+
* once first-party session attachment ships (see PR follow-ups).
|
|
499
|
+
*/
|
|
500
|
+
function cmdMcpInstallRemote(options) {
|
|
501
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
502
|
+
var _a, _b, _c;
|
|
503
|
+
const err = (_a = options.err) !== null && _a !== void 0 ? _a : defaultErr;
|
|
504
|
+
const stdout = (_b = options.stdout) !== null && _b !== void 0 ? _b : process.stdout;
|
|
505
|
+
let slug;
|
|
506
|
+
try {
|
|
507
|
+
slug = resolveProdSlug({
|
|
508
|
+
dir: options.dir,
|
|
509
|
+
cwd: options.cwd,
|
|
510
|
+
slug: options.slug,
|
|
511
|
+
});
|
|
512
|
+
}
|
|
513
|
+
catch (error) {
|
|
514
|
+
err(`${describeError(error)}\n`);
|
|
515
|
+
return 1;
|
|
516
|
+
}
|
|
517
|
+
const resolveAuthImpl = (_c = options.resolveDeployAuthImpl) !== null && _c !== void 0 ? _c : resolveDeployAuth;
|
|
518
|
+
const auth = yield resolveAuthImpl({
|
|
519
|
+
team: options.team,
|
|
520
|
+
apiKey: options.apiKey,
|
|
521
|
+
fetchImpl: options.fetchImpl,
|
|
522
|
+
err,
|
|
523
|
+
});
|
|
524
|
+
if (typeof auth === "number") {
|
|
525
|
+
return auth;
|
|
526
|
+
}
|
|
527
|
+
// Verify the deployment resolves before writing config that cannot work.
|
|
528
|
+
// This read is admin-tier, but calling the gateway only needs team
|
|
529
|
+
// membership — so a 403 means "cannot verify", not "cannot use": warn and
|
|
530
|
+
// still write the entry rather than locking members out of their own agent.
|
|
531
|
+
try {
|
|
532
|
+
yield auth.client.getDeployment({ teamId: auth.teamId, slug });
|
|
533
|
+
}
|
|
534
|
+
catch (error) {
|
|
535
|
+
if (error instanceof DeployApiError && error.status === 403) {
|
|
536
|
+
err(`Could not verify deployment "${slug}" (reading deployments needs team-admin); writing the entry anyway.\n`);
|
|
537
|
+
}
|
|
538
|
+
else {
|
|
539
|
+
err(`${describeError(error)}\n`);
|
|
540
|
+
if (error instanceof DeployApiError && error.status === 404) {
|
|
541
|
+
err(`Deploy it first: ${CLI} deploy --slug ${slug}\n`);
|
|
542
|
+
}
|
|
543
|
+
return 1;
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
const name = resolveServerName(options.name, slug);
|
|
547
|
+
const url = auth.client.mcpGatewayUrl(auth.teamId, slug);
|
|
548
|
+
const entry = {
|
|
549
|
+
url,
|
|
550
|
+
headers: { Authorization: `Bearer ${auth.apiKey}` },
|
|
551
|
+
};
|
|
552
|
+
if (options.print === true) {
|
|
553
|
+
stdout.write(`${JSON.stringify({ mcpServers: { [name]: entry } }, null, 2)}\n`);
|
|
554
|
+
return 0;
|
|
555
|
+
}
|
|
556
|
+
const path = cursorMcpJsonPath();
|
|
557
|
+
try {
|
|
558
|
+
yield upsertMcpJsonEntry(path, name, entry);
|
|
559
|
+
}
|
|
560
|
+
catch (error) {
|
|
561
|
+
err(`${describeError(error)}\n`);
|
|
562
|
+
return 1;
|
|
563
|
+
}
|
|
564
|
+
err("note: the API key is written to mcp.json in plain text; it is a durable " +
|
|
565
|
+
"credential for a remote MCP host that cannot spawn the stdio proxy.\n");
|
|
566
|
+
if (options.json === true) {
|
|
567
|
+
stdout.write(`${JSON.stringify({ ok: true, path, name, entry })}\n`);
|
|
568
|
+
return 0;
|
|
569
|
+
}
|
|
570
|
+
stdout.write(`Installed remote MCP server "${name}" in ${path}\n` +
|
|
571
|
+
` ${url}\n` +
|
|
572
|
+
"Cursor watches this file; the server appears without a restart.\n");
|
|
573
|
+
return 0;
|
|
574
|
+
});
|
|
575
|
+
}
|
|
478
576
|
/** `~/.cursor/mcp.json` — the user-level Cursor MCP config. */
|
|
479
577
|
export function cursorMcpJsonPath(home) {
|
|
480
578
|
var _a;
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `agent-serve slack …` CLI — manifests, setup, doctor (Socket Mode)
|
|
2
|
+
* `agent-serve slack …` CLI — manifests, setup, doctor (Socket Mode), and
|
|
3
|
+
* managed provisioning (`create` / `destroy`) through Cursor's
|
|
4
|
+
* "Add to Slack" API (`slack-provision-client.ts`).
|
|
3
5
|
*/
|
|
6
|
+
import { runSlackDoctor } from "../channels/slack/index.js";
|
|
4
7
|
export interface SlackCliOptions {
|
|
5
8
|
dir: string;
|
|
6
9
|
name?: string;
|
|
@@ -13,6 +16,31 @@ export interface SlackCliOptions {
|
|
|
13
16
|
noPrefix?: boolean;
|
|
14
17
|
/** Subscribe manifests to channel-post events (opt-in channel watch). */
|
|
15
18
|
channelPosts?: boolean;
|
|
19
|
+
/** create/destroy: target Slack workspace id (`T…`). */
|
|
20
|
+
slackTeam?: string;
|
|
21
|
+
/** create/destroy: target the prod app (default dev). */
|
|
22
|
+
prod?: boolean;
|
|
23
|
+
/** create/destroy: Cursor team id; resolved from the account when omitted. */
|
|
24
|
+
team?: string;
|
|
25
|
+
/** create/destroy: Cursor API key (defaults to the stored login / env). */
|
|
26
|
+
apiKey?: string;
|
|
27
|
+
/** create: app icon — an https image URL or a local png/jpg/gif ≤512KB. */
|
|
28
|
+
icon?: string;
|
|
29
|
+
/** create: overwrite manifest edits made in Slack (skip the drift check). */
|
|
30
|
+
force?: boolean;
|
|
31
|
+
/** `slack icon <source>` positional (same URL-or-file forms as --icon). */
|
|
32
|
+
iconSource?: string;
|
|
33
|
+
/** Test seams. */
|
|
34
|
+
fetchImpl?: typeof fetch;
|
|
35
|
+
openBrowserImpl?: (url: string) => void;
|
|
36
|
+
connectPollIntervalMs?: number;
|
|
37
|
+
connectPollTimeoutMs?: number;
|
|
38
|
+
doctorImpl?: typeof runSlackDoctor;
|
|
39
|
+
out?: (text: string) => void;
|
|
40
|
+
err?: (text: string) => void;
|
|
16
41
|
}
|
|
17
42
|
export declare function cmdSlack(subcommand: string | undefined, options: SlackCliOptions): Promise<number>;
|
|
43
|
+
export declare function cmdSlackCreate(options: SlackCliOptions): Promise<number>;
|
|
44
|
+
export declare function cmdSlackDestroy(options: SlackCliOptions): Promise<number>;
|
|
45
|
+
export declare function cmdSlackIcon(options: SlackCliOptions): Promise<number>;
|
|
18
46
|
//# sourceMappingURL=cli-slack.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-slack.d.ts","sourceRoot":"","sources":["../../src/internal/cli-slack.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cli-slack.d.ts","sourceRoot":"","sources":["../../src/internal/cli-slack.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAML,cAAc,EAGf,MAAM,4BAA4B,CAAC;AAoBpC,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IAC9B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yEAAyE;IACzE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8EAA8E;IAC9E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kBAAkB;IAClB,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,eAAe,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,CAAC,EAAE,OAAO,cAAc,CAAC;IACnC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9B;AA6CD,wBAAsB,QAAQ,CAC5B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,MAAM,CAAC,CA4BjB;AAsaD,wBAAsB,cAAc,CAClC,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,MAAM,CAAC,CA6NjB;AAiDD,wBAAsB,eAAe,CACnC,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,MAAM,CAAC,CA4CjB;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAsD5E"}
|