@cursor/july 0.1.7 → 0.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/agent-serve.js +31 -2
- package/dist/channels/slack/channel-watch.d.ts +6 -1
- package/dist/channels/slack/channel-watch.d.ts.map +1 -1
- package/dist/channels/slack/channel-watch.js +22 -1
- package/dist/channels/slack/cursor-account.d.ts +4 -0
- package/dist/channels/slack/cursor-account.d.ts.map +1 -1
- package/dist/channels/slack/cursor-account.js +12 -2
- package/dist/channels/slack/defaults.d.ts +10 -5
- package/dist/channels/slack/defaults.d.ts.map +1 -1
- package/dist/channels/slack/defaults.js +39 -17
- package/dist/channels/slack/dispatch.d.ts +18 -0
- package/dist/channels/slack/dispatch.d.ts.map +1 -1
- package/dist/channels/slack/dispatch.js +141 -38
- package/dist/channels/slack/inbound.d.ts +13 -3
- package/dist/channels/slack/inbound.d.ts.map +1 -1
- package/dist/channels/slack/inbound.js +17 -9
- package/dist/channels/slack/index.d.ts +4 -0
- package/dist/channels/slack/index.d.ts.map +1 -1
- package/dist/channels/slack/index.js +4 -0
- package/dist/channels/slack/live-delivery.d.ts.map +1 -1
- package/dist/channels/slack/live-delivery.js +1 -0
- package/dist/channels/slack/manifest.d.ts.map +1 -1
- package/dist/channels/slack/manifest.js +3 -0
- package/dist/channels/slack/nudge-carrier.d.ts +19 -0
- package/dist/channels/slack/nudge-carrier.d.ts.map +1 -0
- package/dist/channels/slack/nudge-carrier.js +166 -0
- package/dist/channels/slack/nudge-store.d.ts +61 -0
- package/dist/channels/slack/nudge-store.d.ts.map +1 -0
- package/dist/channels/slack/nudge-store.js +266 -0
- package/dist/channels/slack/post-update-delivery.js +318 -0
- package/dist/channels/slack/slack-channel.d.ts.map +1 -1
- package/dist/channels/slack/slack-channel.js +74 -25
- package/dist/channels/slack/stop.d.ts +14 -0
- package/dist/channels/slack/stop.d.ts.map +1 -0
- package/dist/channels/slack/stop.js +22 -0
- package/dist/channels/slack/thread-context.d.ts +81 -0
- package/dist/channels/slack/thread-context.d.ts.map +1 -0
- package/dist/channels/slack/thread-context.js +470 -0
- package/dist/channels/slack/types.d.ts +27 -0
- package/dist/channels/slack/types.d.ts.map +1 -1
- package/dist/docs/404.html +2 -2
- package/dist/docs/ab.html +4 -4
- package/dist/docs/assets/{app.COTN7wgo.js → app.Ciosf24M.js} +1 -1
- package/dist/docs/assets/chunks/@localSearchIndexroot.D154Detj.js +1 -0
- package/dist/docs/assets/chunks/{VPLocalSearchBox.BW3TBdT0.js → VPLocalSearchBox.BcRDly7n.js} +1 -1
- package/dist/docs/assets/chunks/{theme.BEJW0vE7.js → theme.CMpbjdfx.js} +2 -2
- package/dist/docs/assets/{deployment.md.BtfEsc9S.js → deployment.md.DC5-ImcM.js} +1 -1
- package/dist/docs/assets/{example-agents_approval-buddy.md.8R5phXb5.js → example-agents_approval-buddy.md.DFGBYLcc.js} +2 -2
- package/dist/docs/assets/{example-agents_approval-buddy.md.8R5phXb5.lean.js → example-agents_approval-buddy.md.DFGBYLcc.lean.js} +1 -1
- package/dist/docs/assets/example-agents_index.md.BPXjUtRB.js +2 -0
- package/dist/docs/assets/example-agents_index.md.BPXjUtRB.lean.js +1 -0
- package/dist/docs/assets/example-agents_oncall.md.BG_sUMly.js +10 -0
- package/dist/docs/assets/example-agents_oncall.md.BG_sUMly.lean.js +1 -0
- package/dist/docs/assets/{example-agents_security-reviewer.md.D2rtwDTO.js → example-agents_security-reviewer.md.CE9v-aKm.js} +2 -2
- package/dist/docs/assets/{example-agents_security-reviewer.md.D2rtwDTO.lean.js → example-agents_security-reviewer.md.CE9v-aKm.lean.js} +1 -1
- package/dist/docs/assets/{guides_slack.md.CCwqHvSV.js → guides_slack.md.FWale6Ip.js} +4 -3
- package/dist/docs/assets/{guides_slack.md.CCwqHvSV.lean.js → guides_slack.md.FWale6Ip.lean.js} +1 -1
- package/dist/docs/assets/{reference_sessions.md.DdjWabnN.js → reference_sessions.md.DLd6mvbv.js} +2 -2
- package/dist/docs/assets/{reference_sessions.md.DdjWabnN.lean.js → reference_sessions.md.DLd6mvbv.lean.js} +1 -1
- package/dist/docs/assets/{storage.md.CVnInNiN.js → storage.md.DRTdnFvd.js} +9 -2
- package/dist/docs/assets/{storage.md.CVnInNiN.lean.js → storage.md.DRTdnFvd.lean.js} +1 -1
- package/dist/docs/building-with-agents.html +4 -4
- package/dist/docs/concepts.html +4 -4
- package/dist/docs/deployment.html +6 -6
- package/dist/docs/evals.html +4 -4
- package/dist/docs/example-agents/approval-buddy.html +5 -5
- package/dist/docs/example-agents/benny.html +5 -5
- package/dist/docs/example-agents/bugbot.html +5 -5
- package/dist/docs/example-agents/codebase-wiki.html +4 -4
- package/dist/docs/example-agents/codeowners-review.html +4 -4
- package/dist/docs/example-agents/concierge.html +4 -4
- package/dist/docs/example-agents/fsd.html +4 -4
- package/dist/docs/example-agents/index.html +6 -6
- package/dist/docs/example-agents/knowledge-base.html +4 -4
- package/dist/docs/example-agents/oncall.html +34 -0
- package/dist/docs/example-agents/security-reviewer.html +6 -6
- package/dist/docs/example-agents/slack-agent.html +4 -4
- package/dist/docs/example-agents/weather-agent.html +4 -4
- package/dist/docs/guides/agent-to-agent.html +4 -4
- package/dist/docs/guides/cloud-runtime.html +4 -4
- package/dist/docs/guides/github.html +4 -4
- package/dist/docs/guides/human-in-the-loop.html +4 -4
- package/dist/docs/guides/slack.html +7 -6
- package/dist/docs/guides/webhooks.html +4 -4
- package/dist/docs/hashmap.json +1 -1
- package/dist/docs/hillclimbing.html +4 -4
- package/dist/docs/index.html +4 -4
- package/dist/docs/quickstart.html +4 -4
- package/dist/docs/reference/agent-config.html +4 -4
- package/dist/docs/reference/channels.html +4 -4
- package/dist/docs/reference/cli.html +4 -4
- package/dist/docs/reference/connections.html +4 -4
- package/dist/docs/reference/hooks.html +4 -4
- package/dist/docs/reference/http-api.html +4 -4
- package/dist/docs/reference/instructions.html +4 -4
- package/dist/docs/reference/playground.html +4 -4
- package/dist/docs/reference/project-layout.html +4 -4
- package/dist/docs/reference/schedules.html +4 -4
- package/dist/docs/reference/sessions.html +5 -5
- package/dist/docs/reference/skills.html +4 -4
- package/dist/docs/reference/subagents.html +4 -4
- package/dist/docs/reference/tools.html +4 -4
- package/dist/docs/scaffolding-agents.html +4 -4
- package/dist/docs/storage.html +13 -6
- package/dist/docs/troubleshooting.html +4 -4
- package/dist/internal/cli-deploy.d.ts.map +1 -1
- package/dist/internal/cli-deploy.js +45 -18
- package/dist/internal/cli-mcp.d.ts +64 -0
- package/dist/internal/cli-mcp.d.ts.map +1 -0
- package/dist/internal/cli-mcp.js +570 -0
- package/dist/internal/deploy-client.d.ts +7 -1
- package/dist/internal/deploy-client.d.ts.map +1 -1
- package/dist/internal/deploy-client.js +3 -0
- package/dist/internal/deploy-source.d.ts +3 -0
- package/dist/internal/deploy-source.d.ts.map +1 -1
- package/dist/internal/deploy-source.js +25 -7
- package/dist/internal/discovery.js +1 -1
- package/dist/internal/distribution.d.ts.map +1 -1
- package/dist/internal/distribution.js +3 -0
- package/dist/internal/host-kv.d.ts +17 -0
- package/dist/internal/host-kv.d.ts.map +1 -0
- package/dist/internal/host-kv.js +77 -0
- package/dist/internal/hosting.d.ts +12 -2
- package/dist/internal/hosting.d.ts.map +1 -1
- package/dist/internal/hosting.js +21 -4
- package/dist/internal/json-dir-store.js +100 -0
- package/dist/internal/logs-client.d.ts +16 -2
- package/dist/internal/logs-client.d.ts.map +1 -1
- package/dist/internal/logs-client.js +51 -16
- package/dist/internal/server.d.ts.map +1 -1
- package/dist/internal/server.js +8 -0
- package/dist/internal/session-engine.d.ts +42 -7
- package/dist/internal/session-engine.d.ts.map +1 -1
- package/dist/internal/session-engine.js +276 -66
- package/dist/internal/storage-coordinator.d.ts +18 -1
- package/dist/internal/storage-coordinator.d.ts.map +1 -1
- package/dist/internal/storage-coordinator.js +43 -0
- package/dist/internal/workspace.d.ts +19 -0
- package/dist/internal/workspace.d.ts.map +1 -1
- package/dist/internal/workspace.js +47 -13
- package/dist/playground/assets/{index-72vCOBWO.js → index-C0-QEG4O.js} +42 -42
- package/dist/playground/assets/index-z3JY9O2x.css +1 -0
- package/dist/playground/index.html +2 -2
- package/dist/storage-backends/cursor-hosted.d.ts +65 -0
- package/dist/storage-backends/cursor-hosted.d.ts.map +1 -0
- package/dist/storage-backends/cursor-hosted.js +203 -0
- package/dist/storage-backends/file-kv.d.ts +42 -0
- package/dist/storage-backends/file-kv.d.ts.map +1 -0
- package/dist/storage-backends/file-kv.js +190 -0
- package/dist/storage-backends/postgres-kv.d.ts +82 -0
- package/dist/storage-backends/postgres-kv.d.ts.map +1 -0
- package/dist/storage-backends/postgres-kv.js +185 -0
- package/dist/storage.d.ts +10 -1
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +10 -1
- package/dist/types.d.ts +79 -0
- package/dist/types.d.ts.map +1 -1
- package/docs/.vitepress/cache/deps/package.json +3 -0
- package/docs/deployment.md +7 -3
- package/docs/example-agents/approval-buddy.md +1 -1
- package/docs/example-agents/index.md +15 -10
- package/docs/example-agents/oncall.md +216 -0
- package/docs/example-agents/security-reviewer.md +5 -5
- package/docs/guides/slack.md +11 -2
- package/docs/reference/sessions.md +13 -4
- package/docs/storage.md +41 -0
- package/package.json +22 -1
- package/skills/framework-map/SKILL.md +6 -4
- package/src/bin/agent-serve.ts +32 -2
- package/src/channels/slack/channel-watch.ts +28 -1
- package/src/channels/slack/cursor-account.ts +20 -0
- package/src/channels/slack/defaults.ts +51 -20
- package/src/channels/slack/dispatch.ts +215 -40
- package/src/channels/slack/inbound.ts +30 -10
- package/src/channels/slack/index.ts +4 -0
- package/src/channels/slack/live-delivery.ts +1 -0
- package/src/channels/slack/manifest.ts +3 -0
- package/src/channels/slack/nudge-carrier.ts +182 -0
- package/src/channels/slack/nudge-store.ts +308 -0
- package/src/channels/slack/slack-channel.ts +106 -31
- package/src/channels/slack/stop.ts +25 -0
- package/src/channels/slack/thread-context.ts +572 -0
- package/src/channels/slack/types.ts +27 -0
- package/src/internal/cli-deploy.ts +58 -20
- package/src/internal/cli-mcp.ts +708 -0
- package/src/internal/deploy-client.ts +11 -0
- package/src/internal/deploy-source.ts +24 -6
- package/src/internal/discovery.ts +1 -1
- package/src/internal/distribution.ts +3 -0
- package/src/internal/host-kv.ts +85 -0
- package/src/internal/hosting.ts +24 -4
- package/src/internal/logs-client.ts +67 -21
- package/src/internal/server.ts +31 -0
- package/src/internal/session-engine.ts +379 -61
- package/src/internal/storage-coordinator.ts +41 -0
- package/src/internal/workspace.ts +48 -11
- package/src/storage-backends/cursor-hosted.ts +246 -0
- package/src/storage-backends/file-kv.ts +221 -0
- package/src/storage-backends/postgres-kv.ts +253 -0
- package/src/storage.ts +11 -1
- package/src/types.ts +83 -0
- package/dist/docs/assets/chunks/@localSearchIndexroot.B7UcKvIn.js +0 -1
- package/dist/docs/assets/example-agents_index.md.CRqJlnIf.js +0 -2
- package/dist/docs/assets/example-agents_index.md.CRqJlnIf.lean.js +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/index-BjnMwYoR.css +0 -1
- /package/dist/docs/assets/{deployment.md.BtfEsc9S.lean.js → deployment.md.DC5-ImcM.lean.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-deploy.d.ts","sourceRoot":"","sources":["../../src/internal/cli-deploy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAUH,OAAO,EACL,sBAAsB,EAYvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,SAAS,EAAwB,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EACL,KAAK,aAAa,EAInB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli-deploy.d.ts","sourceRoot":"","sources":["../../src/internal/cli-deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,8 @@ import { AgentServeDeployClient, DeployApiError, slugFromDirectoryName, TERMINAL
|
|
|
24
24
|
import { inferDeployGitSource } from "./deploy-source.js";
|
|
25
25
|
import { isAgentProjectDir, listChildAgentDirs, loadAgentProject, } from "./discovery.js";
|
|
26
26
|
import { CLI_COMMAND_NAME as CLI } from "./distribution.js";
|
|
27
|
-
import { isValidCursorEventRepo, validateSettableSecretName, } from "./hosting.js";
|
|
27
|
+
import { isReservedSecretName, isValidCursorEventRepo, validateSettableSecretName, } from "./hosting.js";
|
|
28
|
+
import { deployProgressLabel, sanitizeCustomerError } from "./logs-client.js";
|
|
28
29
|
import { stderrPalette } from "./terminal-style.js";
|
|
29
30
|
const DEFAULT_POLL_INTERVAL_MS = 3000;
|
|
30
31
|
const DEFAULT_DEPLOY_TIMEOUT_MS = 10 * 60 * 1000;
|
|
@@ -368,6 +369,20 @@ function deployOne(ctx, options, target, extras) {
|
|
|
368
369
|
ctx.err(`Invalid --repo: ${gitRepoUrl} (expected an https:// git repository URL)\n`);
|
|
369
370
|
return 1;
|
|
370
371
|
}
|
|
372
|
+
// Repo-backed fields without a resolvable https origin become a static
|
|
373
|
+
// deploy body the control plane rejects. Fail here with a fix hint —
|
|
374
|
+
// common when origin is an unrecognized SSH shape (pass --repo).
|
|
375
|
+
if (gitRepoUrl === undefined &&
|
|
376
|
+
(gitRef !== undefined ||
|
|
377
|
+
agentPath !== undefined ||
|
|
378
|
+
(options.cursorEventsRepos !== undefined &&
|
|
379
|
+
options.cursorEventsRepos.length > 0) ||
|
|
380
|
+
(options.allowDomains !== undefined && options.allowDomains.length > 0))) {
|
|
381
|
+
ctx.err(`Could not resolve an https:// git repository URL for this deploy.\n` +
|
|
382
|
+
` Pass --repo https://github.com/<owner>/<repo> (inferred from origin when possible).\n` +
|
|
383
|
+
` Or omit --ref/--path/--cursor-events-repo/--allow-domain for a static engine.\n`);
|
|
384
|
+
return 1;
|
|
385
|
+
}
|
|
371
386
|
for (const repo of (_d = options.cursorEventsRepos) !== null && _d !== void 0 ? _d : []) {
|
|
372
387
|
if (!isValidCursorEventRepo(repo)) {
|
|
373
388
|
ctx.err(`Invalid --cursor-events-repo: ${repo} (expected owner/name)\n`);
|
|
@@ -453,9 +468,10 @@ function deployOne(ctx, options, target, extras) {
|
|
|
453
468
|
return detail.status === "running" ? 0 : 1;
|
|
454
469
|
}
|
|
455
470
|
if (detail.status !== "running") {
|
|
456
|
-
|
|
471
|
+
const errorDetail = detail.lastError === null || detail.lastError === undefined
|
|
457
472
|
? ""
|
|
458
|
-
: `: ${detail.lastError}
|
|
473
|
+
: `: ${sanitizeCustomerError(detail.lastError)}`;
|
|
474
|
+
ctx.err(`Deployment ${slug} ended ${detail.status}${errorDetail}\n`);
|
|
459
475
|
return 1;
|
|
460
476
|
}
|
|
461
477
|
ctx.out(`Deployed ${slug} (team ${ctx.teamId})\n` +
|
|
@@ -491,7 +507,9 @@ function warnMissingSecrets(ctx, slug, declared, set) {
|
|
|
491
507
|
return;
|
|
492
508
|
}
|
|
493
509
|
const setNames = new Set(set !== null && set !== void 0 ? set : []);
|
|
494
|
-
|
|
510
|
+
// Platform-managed names (CURSOR_*, hosted storage) are injected by the
|
|
511
|
+
// control plane and never appear in secrets list — do not warn on them.
|
|
512
|
+
const missing = declared.filter((name) => !setNames.has(name) && !isReservedSecretName(name));
|
|
495
513
|
if (missing.length === 0) {
|
|
496
514
|
return;
|
|
497
515
|
}
|
|
@@ -561,11 +579,16 @@ export function cmdDeploymentStatus(slug, options) {
|
|
|
561
579
|
const lines = [
|
|
562
580
|
`${detail.slug} (team ${detail.teamId})`,
|
|
563
581
|
` status: ${detail.status}`,
|
|
564
|
-
` generation: ${detail.generation}`,
|
|
565
|
-
` kind: ${detail.deploymentKind}`,
|
|
566
|
-
` alias: ${aliasUrl}`,
|
|
567
|
-
` playground: ${aliasUrl}/playground`,
|
|
568
582
|
];
|
|
583
|
+
if (detail.progress !== undefined) {
|
|
584
|
+
lines.push(` progress: ${detail.progress}`);
|
|
585
|
+
}
|
|
586
|
+
if (detail.statusMessage !== null &&
|
|
587
|
+
detail.statusMessage !== undefined &&
|
|
588
|
+
detail.statusMessage.trim() !== "") {
|
|
589
|
+
lines.push(` step: ${detail.statusMessage}`);
|
|
590
|
+
}
|
|
591
|
+
lines.push(` generation: ${detail.generation}`, ` kind: ${detail.deploymentKind}`, ` alias: ${aliasUrl}`, ` playground: ${aliasUrl}/playground`);
|
|
569
592
|
if (detail.gitRepoUrl !== null && detail.gitRepoUrl !== undefined) {
|
|
570
593
|
lines.push(` repo: ${detail.gitRepoUrl} @ ${(_b = detail.gitRef) !== null && _b !== void 0 ? _b : ""}`);
|
|
571
594
|
}
|
|
@@ -593,7 +616,7 @@ export function cmdDeploymentStatus(slug, options) {
|
|
|
593
616
|
lines.push(` engine access: ${detail.engineAccess.url} (expires ${detail.engineAccess.expiresAt})`);
|
|
594
617
|
}
|
|
595
618
|
if (detail.lastError !== null && detail.lastError !== undefined) {
|
|
596
|
-
lines.push(` last error: ${detail.lastError}`);
|
|
619
|
+
lines.push(` last error: ${sanitizeCustomerError(detail.lastError)}`);
|
|
597
620
|
}
|
|
598
621
|
if (detail.desiredUpdatedAt !== undefined) {
|
|
599
622
|
lines.push(` updated: ${detail.desiredUpdatedAt}`);
|
|
@@ -935,27 +958,30 @@ function createLineReader(stream) {
|
|
|
935
958
|
/**
|
|
936
959
|
* Poll deployment status every `pollIntervalMs` until it lands in
|
|
937
960
|
* `terminal` (single-line progress on a TTY, one line per transition
|
|
938
|
-
* otherwise).
|
|
961
|
+
* otherwise). Prefers customer `statusMessage` / `progress` over raw
|
|
962
|
+
* status so create → checkout → start is visible. Throws DeployApiError
|
|
963
|
+
* on request failures or timeout.
|
|
939
964
|
*/
|
|
940
965
|
function pollUntil(ctx, slug, terminal) {
|
|
941
966
|
return __awaiter(this, void 0, void 0, function* () {
|
|
942
967
|
const startedAt = Date.now();
|
|
943
968
|
const tty = process.stderr.isTTY === true;
|
|
944
|
-
let
|
|
969
|
+
let lastLabel;
|
|
945
970
|
let sawProgress = false;
|
|
946
|
-
const report = (
|
|
971
|
+
const report = (detail) => {
|
|
947
972
|
if (ctx.json) {
|
|
948
973
|
return;
|
|
949
974
|
}
|
|
975
|
+
const label = deployProgressLabel(detail);
|
|
950
976
|
const elapsed = Math.round((Date.now() - startedAt) / 1000);
|
|
951
977
|
if (tty) {
|
|
952
|
-
ctx.err(`\r\x1b[2K${slug}: ${
|
|
978
|
+
ctx.err(`\r\x1b[2K${slug}: ${label} (${elapsed}s)`);
|
|
953
979
|
sawProgress = true;
|
|
954
980
|
}
|
|
955
|
-
else if (
|
|
956
|
-
ctx.err(`${slug}: ${
|
|
981
|
+
else if (label !== lastLabel) {
|
|
982
|
+
ctx.err(`${slug}: ${label}\n`);
|
|
957
983
|
}
|
|
958
|
-
|
|
984
|
+
lastLabel = label;
|
|
959
985
|
};
|
|
960
986
|
const finishProgressLine = () => {
|
|
961
987
|
if (tty && sawProgress) {
|
|
@@ -969,14 +995,15 @@ function pollUntil(ctx, slug, terminal) {
|
|
|
969
995
|
finishProgressLine();
|
|
970
996
|
throw error;
|
|
971
997
|
});
|
|
972
|
-
report(detail
|
|
998
|
+
report(detail);
|
|
973
999
|
if (terminal.has(detail.status)) {
|
|
974
1000
|
finishProgressLine();
|
|
975
1001
|
return detail;
|
|
976
1002
|
}
|
|
977
1003
|
if (Date.now() - startedAt >= ctx.timeoutMs) {
|
|
978
1004
|
finishProgressLine();
|
|
979
|
-
|
|
1005
|
+
const last = deployProgressLabel(detail);
|
|
1006
|
+
throw new DeployApiError(`Timed out after ${Math.round(ctx.timeoutMs / 1000)}s waiting for ${slug} (last: ${last}). It may still converge — check \`${CLI} deployment ${slug} --team ${ctx.teamId}\`.`, 0);
|
|
980
1007
|
}
|
|
981
1008
|
yield sleep(ctx.pollIntervalMs);
|
|
982
1009
|
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `agentkit mcp` — stdio ↔ streamable-HTTP proxy for an agent's MCP endpoint.
|
|
3
|
+
*
|
|
4
|
+
* Every served agent is an MCP server at `<base>/v1/mcp` (hosted deployments
|
|
5
|
+
* run in single mode, so the endpoint sits directly on the engine base URL).
|
|
6
|
+
* MCP clients that spawn stdio servers (Cursor, Claude Code, …) can reach it
|
|
7
|
+
* through this command: newline-delimited JSON-RPC on stdin/stdout, one POST
|
|
8
|
+
* per message to the remote endpoint.
|
|
9
|
+
*
|
|
10
|
+
* Targets:
|
|
11
|
+
* - `--prod [--slug <slug>]` — the team's hosted deployment. Short-lived
|
|
12
|
+
* `engineAccess` credentials are minted through the management API with the
|
|
13
|
+
* signed-in Cursor account, re-minted near expiry and once on auth-shaped
|
|
14
|
+
* failures. No durable secret ever lands in a config file.
|
|
15
|
+
* - `--url <baseUrl>` — a running server (local `serve` mount or self-hosted
|
|
16
|
+
* base URL), with optional `--bearer-token`.
|
|
17
|
+
*
|
|
18
|
+
* `agentkit mcp install` writes the matching entry into `~/.cursor/mcp.json`
|
|
19
|
+
* so the agent shows up as an MCP server in Cursor:
|
|
20
|
+
*
|
|
21
|
+
* { "mcpServers": { "weather-agent": {
|
|
22
|
+
* "command": "agentkit",
|
|
23
|
+
* "args": ["mcp", "--prod", "--slug", "weather-agent"] } } }
|
|
24
|
+
*
|
|
25
|
+
* stdout is reserved for the MCP wire in serve mode; all logging goes to
|
|
26
|
+
* stderr.
|
|
27
|
+
*/
|
|
28
|
+
import { resolveProdTarget } from "./resolve-prod-target.js";
|
|
29
|
+
export interface McpCliOptions {
|
|
30
|
+
dir: string;
|
|
31
|
+
cwd?: string;
|
|
32
|
+
/** Hosted deployment slug (with `--prod`); defaults to the `--dir` basename. */
|
|
33
|
+
slug?: string;
|
|
34
|
+
team?: string;
|
|
35
|
+
apiKey?: string;
|
|
36
|
+
/** Base URL of a running agent (mutually exclusive with `--prod`). */
|
|
37
|
+
url?: string;
|
|
38
|
+
prod?: boolean;
|
|
39
|
+
bearerToken?: string;
|
|
40
|
+
/** `install`: server name for the mcp.json entry (defaults to the slug). */
|
|
41
|
+
name?: string;
|
|
42
|
+
/** `install`: print the entry instead of writing ~/.cursor/mcp.json. */
|
|
43
|
+
print?: boolean;
|
|
44
|
+
/** `install`: machine-readable output. */
|
|
45
|
+
json?: boolean;
|
|
46
|
+
/** Injected seams for tests. */
|
|
47
|
+
fetchImpl?: typeof fetch;
|
|
48
|
+
resolveProdTargetImpl?: typeof resolveProdTarget;
|
|
49
|
+
stdin?: NodeJS.ReadableStream;
|
|
50
|
+
stdout?: {
|
|
51
|
+
write(chunk: string): unknown;
|
|
52
|
+
};
|
|
53
|
+
err?: (text: string) => void;
|
|
54
|
+
now?: () => number;
|
|
55
|
+
sleep?: (ms: number) => Promise<void>;
|
|
56
|
+
}
|
|
57
|
+
export declare function cmdMcp(subcommand: string | undefined, options: McpCliOptions): Promise<number>;
|
|
58
|
+
export declare function cmdMcpServe(options: McpCliOptions): Promise<number>;
|
|
59
|
+
export declare function cmdMcpInstall(options: McpCliOptions): Promise<number>;
|
|
60
|
+
/** `~/.cursor/mcp.json` — the user-level Cursor MCP config. */
|
|
61
|
+
export declare function cursorMcpJsonPath(home?: string): string;
|
|
62
|
+
/** Agent base URL → MCP endpoint URL (idempotent when already pointed at it). */
|
|
63
|
+
export declare function joinMcpPath(baseUrl: string): string;
|
|
64
|
+
//# sourceMappingURL=cli-mcp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-mcp.d.ts","sourceRoot":"","sources":["../../src/internal/cli-mcp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAMH,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,gCAAgC;IAChC,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,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,GACrB,OAAO,CAAC,MAAM,CAAC,CAajB;AAMD,wBAAsB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAkFzE;AAyRD,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAqG3E;AAED,+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"}
|