vercel 51.4.0 → 51.5.1
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/chunks/{add-RNQLGEYS.js → add-CSYGALLC.js} +4 -4
- package/dist/chunks/chunk-3VIDEX7A.js +692 -0
- package/dist/chunks/{chunk-PBGN54ZH.js → chunk-4T7RWBT7.js} +3 -3
- package/dist/chunks/{chunk-BRQBLRFB.js → chunk-5I2ESU2C.js} +1 -1
- package/dist/chunks/{chunk-5NTBJ33M.js → chunk-7IM2OOGY.js} +1 -1
- package/dist/chunks/{chunk-3GDNTBCE.js → chunk-7V43C2HB.js} +7 -7
- package/dist/chunks/{chunk-4RBF6ZDU.js → chunk-BHDZCUTT.js} +13 -31
- package/dist/chunks/{chunk-4DR2FV6O.js → chunk-CXTJ4RY4.js} +1 -1
- package/dist/chunks/{chunk-L2JUC7NX.js → chunk-EQIXUYBY.js} +1 -1
- package/dist/chunks/{chunk-5VKKTHMP.js → chunk-GZF6VMKA.js} +8 -4
- package/dist/chunks/{chunk-D2D4FJ6S.js → chunk-JHVQUIP6.js} +2 -2
- package/dist/chunks/{chunk-NKJC5SI4.js → chunk-K3HUUZM5.js} +1 -1
- package/dist/chunks/{chunk-6C33Y3DC.js → chunk-KAKD6QXJ.js} +6 -6
- package/dist/chunks/{chunk-7ZDERWUW.js → chunk-KNZNWP2U.js} +2 -2
- package/dist/chunks/{chunk-7MF47FW3.js → chunk-LR5Y63NG.js} +1 -1
- package/dist/chunks/{chunk-UJ4JXXED.js → chunk-NJ7GOUCE.js} +218 -79
- package/dist/chunks/{chunk-537JTK2U.js → chunk-P445TBWL.js} +1 -1
- package/dist/chunks/{chunk-ELUNQCFN.js → chunk-QIHIANBF.js} +5 -3
- package/dist/chunks/{chunk-DKFFXOHJ.js → chunk-QO2ED7OU.js} +2 -2
- package/dist/chunks/{chunk-HNU5CXW4.js → chunk-SVYO7LZ5.js} +1 -1
- package/dist/chunks/{chunk-HQXVCOH6.js → chunk-T7LHO6SF.js} +1 -1
- package/dist/chunks/{chunk-P56KWLXY.js → chunk-TX6K3Z5E.js} +1 -1
- package/dist/chunks/{chunk-AUSDBXUD.js → chunk-TY6AGA4P.js} +2 -2
- package/dist/chunks/{compile-vercel-config-ZVY7LBE3.js → compile-vercel-config-OLTGIW27.js} +1 -1
- package/dist/chunks/{delete-SKTJMJNP.js → delete-XAYXXDEB.js} +2 -2
- package/dist/chunks/{disable-AG7I6DPV.js → disable-PNN5ZWF4.js} +2 -2
- package/dist/chunks/{discard-LUK6LBLT.js → discard-QUK6T2AQ.js} +2 -2
- package/dist/chunks/{edit-3BR5HP3U.js → edit-D2OHUFQ6.js} +3 -3
- package/dist/chunks/{enable-4JNLOKSM.js → enable-SJV7HD2Y.js} +2 -2
- package/dist/chunks/{export-YLZ6QSHG.js → export-SN3F75NH.js} +2 -2
- package/dist/chunks/{inspect-HUJLUQAV.js → inspect-C2ZW7BZA.js} +3 -3
- package/dist/chunks/{list-EPU4SB3E.js → list-2DKITLDE.js} +2 -2
- package/dist/chunks/{list-RMA56KYZ.js → list-EUXU6BVD.js} +3 -3
- package/dist/chunks/{ls-7HHDYE6F.js → ls-7R3DRCUY.js} +4 -4
- package/dist/chunks/{publish-6YE4OUDI.js → publish-HNGKZNDH.js} +2 -2
- package/dist/chunks/{query-VNBKOI65.js → query-G4SY7VMM.js} +8 -6
- package/dist/chunks/{reorder-VFM23ESC.js → reorder-Q2LYGVZK.js} +2 -2
- package/dist/chunks/{restore-VX34SXVF.js → restore-YJUUQLZG.js} +2 -2
- package/dist/chunks/{rm-5KXF2PY3.js → rm-XEV4FF6H.js} +4 -4
- package/dist/chunks/{rule-inspect-JG7AE5TI.js → rule-inspect-JNZMBVJF.js} +4 -4
- package/dist/chunks/{rules-XRJBT22L.js → rules-5PJVEET5.js} +6 -6
- package/dist/chunks/{schema-FUOKCZTW.js → schema-OU7FKPQZ.js} +51 -21
- package/dist/chunks/{update-4FMWTIJK.js → update-6LXBPVBH.js} +4 -4
- package/dist/commands/build/index.js +13 -13
- package/dist/commands/deploy/index.js +27 -28
- package/dist/commands/dev/index.js +8 -8
- package/dist/commands/env/index.js +26 -12
- package/dist/commands/link/index.js +12 -12
- package/dist/commands/list/index.js +3 -3
- package/dist/commands-bulk.js +2361 -1424
- package/dist/help.js +1 -1
- package/dist/index.js +41 -20
- package/dist/version.mjs +1 -1
- package/package.json +17 -17
- package/dist/chunks/chunk-O7SQKNIT.js +0 -247
- package/dist/chunks/chunk-RJD5NYGF.js +0 -149
package/dist/help.js
CHANGED
|
@@ -6,7 +6,7 @@ const __filename = __fileURLToPath(import.meta.url);
|
|
|
6
6
|
const __dirname = __dirname_(__filename);
|
|
7
7
|
import {
|
|
8
8
|
help
|
|
9
|
-
} from "./chunks/chunk-
|
|
9
|
+
} from "./chunks/chunk-QIHIANBF.js";
|
|
10
10
|
import "./chunks/chunk-S7KYDPEM.js";
|
|
11
11
|
import "./chunks/chunk-TZ2YI2VH.js";
|
|
12
12
|
export {
|
package/dist/index.js
CHANGED
|
@@ -9,16 +9,16 @@ import {
|
|
|
9
9
|
} from "./chunks/chunk-2HSQ7YUK.js";
|
|
10
10
|
import {
|
|
11
11
|
help
|
|
12
|
-
} from "./chunks/chunk-
|
|
12
|
+
} from "./chunks/chunk-QIHIANBF.js";
|
|
13
13
|
import {
|
|
14
14
|
box,
|
|
15
15
|
did_you_mean_default,
|
|
16
16
|
executeUpgrade,
|
|
17
17
|
login
|
|
18
|
-
} from "./chunks/chunk-
|
|
18
|
+
} from "./chunks/chunk-4T7RWBT7.js";
|
|
19
19
|
import {
|
|
20
20
|
getUpdateCommand
|
|
21
|
-
} from "./chunks/chunk-
|
|
21
|
+
} from "./chunks/chunk-CXTJ4RY4.js";
|
|
22
22
|
import {
|
|
23
23
|
Client,
|
|
24
24
|
getAuthConfigFilePath,
|
|
@@ -27,20 +27,19 @@ import {
|
|
|
27
27
|
readConfigFile,
|
|
28
28
|
writeToAuthConfigFile,
|
|
29
29
|
writeToConfigFile
|
|
30
|
-
} from "./chunks/chunk-
|
|
30
|
+
} from "./chunks/chunk-KAKD6QXJ.js";
|
|
31
31
|
import {
|
|
32
32
|
highlight
|
|
33
33
|
} from "./chunks/chunk-V5P25P7F.js";
|
|
34
34
|
import {
|
|
35
35
|
getScope
|
|
36
|
-
} from "./chunks/chunk-
|
|
37
|
-
import "./chunks/chunk-O7SQKNIT.js";
|
|
36
|
+
} from "./chunks/chunk-EQIXUYBY.js";
|
|
38
37
|
import {
|
|
39
38
|
commandNames,
|
|
40
39
|
commands
|
|
41
|
-
} from "./chunks/chunk-
|
|
40
|
+
} from "./chunks/chunk-NJ7GOUCE.js";
|
|
42
41
|
import "./chunks/chunk-CRZM5WM2.js";
|
|
43
|
-
import "./chunks/chunk-
|
|
42
|
+
import "./chunks/chunk-BHDZCUTT.js";
|
|
44
43
|
import "./chunks/chunk-BJQTGP42.js";
|
|
45
44
|
import "./chunks/chunk-UWKTUK3W.js";
|
|
46
45
|
import "./chunks/chunk-TAOVG4PS.js";
|
|
@@ -53,9 +52,10 @@ import "./chunks/chunk-4PQA6H63.js";
|
|
|
53
52
|
import {
|
|
54
53
|
require_execa,
|
|
55
54
|
require_isexe
|
|
56
|
-
} from "./chunks/chunk-
|
|
57
|
-
import "./chunks/chunk-
|
|
58
|
-
import "./chunks/chunk-
|
|
55
|
+
} from "./chunks/chunk-LR5Y63NG.js";
|
|
56
|
+
import "./chunks/chunk-K3HUUZM5.js";
|
|
57
|
+
import "./chunks/chunk-3VIDEX7A.js";
|
|
58
|
+
import "./chunks/chunk-E3NE4SKN.js";
|
|
59
59
|
import "./chunks/chunk-LDXYSGPZ.js";
|
|
60
60
|
import "./chunks/chunk-GE6G37P4.js";
|
|
61
61
|
import {
|
|
@@ -71,7 +71,7 @@ import {
|
|
|
71
71
|
require_lib,
|
|
72
72
|
require_lib3 as require_lib2,
|
|
73
73
|
require_xdg_app_paths
|
|
74
|
-
} from "./chunks/chunk-
|
|
74
|
+
} from "./chunks/chunk-P445TBWL.js";
|
|
75
75
|
import {
|
|
76
76
|
TelemetryClient,
|
|
77
77
|
TelemetryEventStore
|
|
@@ -23018,6 +23018,12 @@ var RootTelemetryClient = class extends TelemetryClient {
|
|
|
23018
23018
|
value: actual
|
|
23019
23019
|
});
|
|
23020
23020
|
}
|
|
23021
|
+
trackCliCommandConnex(actual) {
|
|
23022
|
+
this.trackCliCommand({
|
|
23023
|
+
command: "connex",
|
|
23024
|
+
value: actual
|
|
23025
|
+
});
|
|
23026
|
+
}
|
|
23021
23027
|
trackCliCommandContract(actual) {
|
|
23022
23028
|
this.trackCliCommand({
|
|
23023
23029
|
command: "contract",
|
|
@@ -23042,6 +23048,12 @@ var RootTelemetryClient = class extends TelemetryClient {
|
|
|
23042
23048
|
value: actual
|
|
23043
23049
|
});
|
|
23044
23050
|
}
|
|
23051
|
+
trackCliCommandDeployHooks(actual) {
|
|
23052
|
+
this.trackCliCommand({
|
|
23053
|
+
command: "deploy-hooks",
|
|
23054
|
+
value: actual
|
|
23055
|
+
});
|
|
23056
|
+
}
|
|
23045
23057
|
trackCliCommandDev(actual) {
|
|
23046
23058
|
this.trackCliCommand({
|
|
23047
23059
|
command: "dev",
|
|
@@ -24145,6 +24157,15 @@ var main = async () => {
|
|
|
24145
24157
|
telemetry.trackCliCommandCache(userSuppliedSubCommand);
|
|
24146
24158
|
func = (await import("./commands-bulk.js")).cache;
|
|
24147
24159
|
break;
|
|
24160
|
+
case "connex":
|
|
24161
|
+
if (process.env.FF_CONNEX_ENABLED) {
|
|
24162
|
+
telemetry.trackCliCommandConnex(userSuppliedSubCommand);
|
|
24163
|
+
func = (await import("./commands-bulk.js")).connex;
|
|
24164
|
+
break;
|
|
24165
|
+
} else {
|
|
24166
|
+
func = null;
|
|
24167
|
+
break;
|
|
24168
|
+
}
|
|
24148
24169
|
case "contract":
|
|
24149
24170
|
telemetry.trackCliCommandContract(userSuppliedSubCommand);
|
|
24150
24171
|
func = (await import("./commands-bulk.js")).contract;
|
|
@@ -24166,6 +24187,11 @@ var main = async () => {
|
|
|
24166
24187
|
telemetry.trackCliCommandDns(userSuppliedSubCommand);
|
|
24167
24188
|
func = (await import("./commands-bulk.js")).dns;
|
|
24168
24189
|
break;
|
|
24190
|
+
case "deploy-hooks":
|
|
24191
|
+
case "deploy-hook":
|
|
24192
|
+
telemetry.trackCliCommandDeployHooks(userSuppliedSubCommand);
|
|
24193
|
+
func = (await import("./commands-bulk.js")).deployHooks;
|
|
24194
|
+
break;
|
|
24169
24195
|
case "edge-config":
|
|
24170
24196
|
telemetry.trackCliCommandEdgeConfig(userSuppliedSubCommand);
|
|
24171
24197
|
func = (await import("./commands-bulk.js")).edgeConfig;
|
|
@@ -24233,14 +24259,9 @@ var main = async () => {
|
|
|
24233
24259
|
func = (await import("./commands-bulk.js")).logs;
|
|
24234
24260
|
break;
|
|
24235
24261
|
case "metrics":
|
|
24236
|
-
|
|
24237
|
-
|
|
24238
|
-
|
|
24239
|
-
break;
|
|
24240
|
-
} else {
|
|
24241
|
-
func = null;
|
|
24242
|
-
break;
|
|
24243
|
-
}
|
|
24262
|
+
telemetry.trackCliCommandMetrics(userSuppliedSubCommand);
|
|
24263
|
+
func = (await import("./commands-bulk.js")).metrics;
|
|
24264
|
+
break;
|
|
24244
24265
|
case "microfrontends":
|
|
24245
24266
|
telemetry.trackCliCommandMicrofrontends(userSuppliedSubCommand);
|
|
24246
24267
|
func = (await import("./commands-bulk.js")).microfrontends;
|
package/dist/version.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const version = "51.
|
|
1
|
+
export const version = "51.5.1";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vercel",
|
|
3
|
-
"version": "51.
|
|
3
|
+
"version": "51.5.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"preferGlobal": true,
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -33,26 +33,26 @@
|
|
|
33
33
|
"proxy-agent": "6.4.0",
|
|
34
34
|
"sandbox": "2.5.6",
|
|
35
35
|
"@vercel/prepare-flags-definitions": "0.2.1",
|
|
36
|
-
"@vercel/build-utils": "13.17.
|
|
37
|
-
"@vercel/
|
|
36
|
+
"@vercel/build-utils": "13.17.1",
|
|
37
|
+
"@vercel/elysia": "0.1.66",
|
|
38
38
|
"@vercel/detect-agent": "1.2.2",
|
|
39
|
-
"@vercel/express": "0.1.
|
|
39
|
+
"@vercel/express": "0.1.76",
|
|
40
|
+
"@vercel/backends": "0.0.63",
|
|
41
|
+
"@vercel/fastify": "0.1.69",
|
|
40
42
|
"@vercel/go": "3.5.0",
|
|
41
|
-
"@vercel/
|
|
42
|
-
"@vercel/
|
|
43
|
-
"@vercel/koa": "0.1.48",
|
|
43
|
+
"@vercel/h3": "0.1.75",
|
|
44
|
+
"@vercel/hono": "0.2.69",
|
|
44
45
|
"@vercel/hydrogen": "1.3.6",
|
|
45
|
-
"@vercel/
|
|
46
|
-
"@vercel/nestjs": "0.2.
|
|
47
|
-
"@vercel/hono": "0.2.68",
|
|
46
|
+
"@vercel/koa": "0.1.49",
|
|
47
|
+
"@vercel/nestjs": "0.2.70",
|
|
48
48
|
"@vercel/next": "4.16.8",
|
|
49
|
+
"@vercel/node": "5.7.8",
|
|
50
|
+
"@vercel/python": "6.33.2",
|
|
49
51
|
"@vercel/redwood": "2.4.12",
|
|
50
|
-
"@vercel/python": "6.33.0",
|
|
51
52
|
"@vercel/ruby": "2.3.2",
|
|
52
53
|
"@vercel/remix-builder": "5.7.2",
|
|
53
|
-
"@vercel/
|
|
54
|
-
"@vercel/
|
|
55
|
-
"@vercel/static-build": "2.9.15"
|
|
54
|
+
"@vercel/rust": "1.1.1",
|
|
55
|
+
"@vercel/static-build": "2.9.16"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"@alex_neo/jest-expect-message": "1.0.5",
|
|
@@ -180,13 +180,13 @@
|
|
|
180
180
|
"write-json-file": "2.2.0",
|
|
181
181
|
"xdg-app-paths": "5.1.0",
|
|
182
182
|
"yauzl-promise": "2.1.3",
|
|
183
|
+
"@vercel-internals/get-package-json": "1.0.0",
|
|
183
184
|
"@vercel-internals/constants": "1.0.4",
|
|
184
|
-
"@vercel/client": "17.3.4",
|
|
185
185
|
"@vercel-internals/types": "3.0.6",
|
|
186
|
+
"@vercel/client": "17.3.5",
|
|
186
187
|
"@vercel/error-utils": "2.0.3",
|
|
187
|
-
"@vercel-internals/get-package-json": "1.0.0",
|
|
188
188
|
"@vercel/frameworks": "3.24.1",
|
|
189
|
-
"@vercel/fs-detectors": "5.18.
|
|
189
|
+
"@vercel/fs-detectors": "5.18.1",
|
|
190
190
|
"@vercel/routing-utils": "6.1.1"
|
|
191
191
|
},
|
|
192
192
|
"scripts": {
|
|
@@ -1,247 +0,0 @@
|
|
|
1
|
-
import { createRequire as __createRequire } from 'node:module';
|
|
2
|
-
import { fileURLToPath as __fileURLToPath } from 'node:url';
|
|
3
|
-
import { dirname as __dirname_ } from 'node:path';
|
|
4
|
-
const require = __createRequire(import.meta.url);
|
|
5
|
-
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
-
const __dirname = __dirname_(__filename);
|
|
7
|
-
import {
|
|
8
|
-
global_path_default
|
|
9
|
-
} from "./chunk-537JTK2U.js";
|
|
10
|
-
import {
|
|
11
|
-
output_manager_default
|
|
12
|
-
} from "./chunk-ZQKJVHXY.js";
|
|
13
|
-
import {
|
|
14
|
-
require_source
|
|
15
|
-
} from "./chunk-S7KYDPEM.js";
|
|
16
|
-
import {
|
|
17
|
-
__toESM
|
|
18
|
-
} from "./chunk-TZ2YI2VH.js";
|
|
19
|
-
|
|
20
|
-
// src/util/agent/auto-install-agentic.ts
|
|
21
|
-
var import_chalk = __toESM(require_source(), 1);
|
|
22
|
-
import { readFile, writeFile, readdir } from "fs/promises";
|
|
23
|
-
import { access } from "fs/promises";
|
|
24
|
-
import { join } from "path";
|
|
25
|
-
import { homedir } from "os";
|
|
26
|
-
import { spawn } from "child_process";
|
|
27
|
-
import { KNOWN_AGENTS } from "@vercel/detect-agent";
|
|
28
|
-
var PREFS_FILE = "agent-preferences.json";
|
|
29
|
-
var AGENT_TO_TARGET = {
|
|
30
|
-
[KNOWN_AGENTS.CLAUDE]: "claude-code",
|
|
31
|
-
[KNOWN_AGENTS.COWORK]: "claude-code",
|
|
32
|
-
[KNOWN_AGENTS.CURSOR]: "cursor",
|
|
33
|
-
[KNOWN_AGENTS.CURSOR_CLI]: "cursor"
|
|
34
|
-
};
|
|
35
|
-
async function fileExists(filePath) {
|
|
36
|
-
try {
|
|
37
|
-
await access(filePath);
|
|
38
|
-
return true;
|
|
39
|
-
} catch {
|
|
40
|
-
return false;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
async function readPrefs() {
|
|
44
|
-
try {
|
|
45
|
-
const raw = await readFile(
|
|
46
|
-
join(global_path_default(), PREFS_FILE),
|
|
47
|
-
"utf-8"
|
|
48
|
-
);
|
|
49
|
-
return JSON.parse(raw);
|
|
50
|
-
} catch {
|
|
51
|
-
return {};
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
async function writePrefs(prefs) {
|
|
55
|
-
try {
|
|
56
|
-
await writeFile(
|
|
57
|
-
join(global_path_default(), PREFS_FILE),
|
|
58
|
-
JSON.stringify(prefs, null, 2),
|
|
59
|
-
"utf-8"
|
|
60
|
-
);
|
|
61
|
-
} catch {
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
async function getPluginTargets(agentName) {
|
|
65
|
-
if (agentName && AGENT_TO_TARGET[agentName]) {
|
|
66
|
-
return [AGENT_TO_TARGET[agentName]];
|
|
67
|
-
}
|
|
68
|
-
const home = homedir();
|
|
69
|
-
const targets = [];
|
|
70
|
-
if (await fileExists(join(home, ".claude"))) {
|
|
71
|
-
targets.push("claude-code");
|
|
72
|
-
}
|
|
73
|
-
if (await fileExists(join(home, ".cursor"))) {
|
|
74
|
-
targets.push("cursor");
|
|
75
|
-
}
|
|
76
|
-
return targets;
|
|
77
|
-
}
|
|
78
|
-
async function isPluginInClaudeRegistry() {
|
|
79
|
-
try {
|
|
80
|
-
const raw = await readFile(
|
|
81
|
-
join(homedir(), ".claude", "plugins", "installed_plugins.json"),
|
|
82
|
-
"utf-8"
|
|
83
|
-
);
|
|
84
|
-
const data = JSON.parse(raw);
|
|
85
|
-
const plugins = data?.plugins ?? {};
|
|
86
|
-
return Object.keys(plugins).some(
|
|
87
|
-
(key) => key.toLowerCase().includes("vercel-plugin")
|
|
88
|
-
);
|
|
89
|
-
} catch {
|
|
90
|
-
return false;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
async function isPluginInCursorPlugins() {
|
|
94
|
-
const pluginsDir = join(homedir(), ".cursor", "plugins");
|
|
95
|
-
try {
|
|
96
|
-
const entries = await readdir(pluginsDir, { withFileTypes: true });
|
|
97
|
-
for (const entry of entries) {
|
|
98
|
-
if (!entry.isDirectory())
|
|
99
|
-
continue;
|
|
100
|
-
if (entry.name.includes("vercel-plugin")) {
|
|
101
|
-
return true;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
} catch {
|
|
105
|
-
return false;
|
|
106
|
-
}
|
|
107
|
-
return false;
|
|
108
|
-
}
|
|
109
|
-
async function isPluginInstalledForTarget(target) {
|
|
110
|
-
if (target === "claude-code") {
|
|
111
|
-
return isPluginInClaudeRegistry();
|
|
112
|
-
}
|
|
113
|
-
if (target === "cursor") {
|
|
114
|
-
return await isPluginInClaudeRegistry() || await isPluginInCursorPlugins();
|
|
115
|
-
}
|
|
116
|
-
return false;
|
|
117
|
-
}
|
|
118
|
-
async function confirm(client, message, autoConfirm) {
|
|
119
|
-
if (autoConfirm && !client.isAgent) {
|
|
120
|
-
return true;
|
|
121
|
-
}
|
|
122
|
-
if (!client.stdin.isTTY) {
|
|
123
|
-
return false;
|
|
124
|
-
}
|
|
125
|
-
return client.input.confirm(message, true);
|
|
126
|
-
}
|
|
127
|
-
async function autoInstallAgentTooling(client, options) {
|
|
128
|
-
try {
|
|
129
|
-
const prefs = await readPrefs();
|
|
130
|
-
if (!prefs.pluginDismissed) {
|
|
131
|
-
const targets = await getPluginTargets(client.agentName);
|
|
132
|
-
const uninstalledTargets = [];
|
|
133
|
-
for (const target of targets) {
|
|
134
|
-
if (!await isPluginInstalledForTarget(target)) {
|
|
135
|
-
uninstalledTargets.push(target);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
if (uninstalledTargets.length > 0) {
|
|
139
|
-
if (client.isAgent && !client.stdin.isTTY) {
|
|
140
|
-
const next = uninstalledTargets.map((target) => ({
|
|
141
|
-
command: `npx plugins add vercel/vercel-plugin --target ${target} -y`,
|
|
142
|
-
when: `Install Vercel plugin for ${target}`
|
|
143
|
-
}));
|
|
144
|
-
client.stdout.write(
|
|
145
|
-
`${JSON.stringify(
|
|
146
|
-
{
|
|
147
|
-
status: "action_required",
|
|
148
|
-
reason: "plugin_install",
|
|
149
|
-
message: "The Vercel plugin enhances your agent experience. Would you like to install it?",
|
|
150
|
-
next
|
|
151
|
-
},
|
|
152
|
-
null,
|
|
153
|
-
2
|
|
154
|
-
)}
|
|
155
|
-
`
|
|
156
|
-
);
|
|
157
|
-
prefs.pluginDismissed = true;
|
|
158
|
-
await writePrefs(prefs);
|
|
159
|
-
return;
|
|
160
|
-
}
|
|
161
|
-
const targetList = uninstalledTargets.join(", ");
|
|
162
|
-
output_manager_default.log(
|
|
163
|
-
`The Vercel plugin installs on your agent harness (${targetList}) to give your AI agent the ability to manage deployments, environments, and more.`
|
|
164
|
-
);
|
|
165
|
-
const accepted = await confirm(
|
|
166
|
-
client,
|
|
167
|
-
"Install the Vercel plugin?",
|
|
168
|
-
options?.autoConfirm
|
|
169
|
-
);
|
|
170
|
-
if (accepted) {
|
|
171
|
-
let interrupted = false;
|
|
172
|
-
for (const target of uninstalledTargets) {
|
|
173
|
-
if (interrupted)
|
|
174
|
-
break;
|
|
175
|
-
output_manager_default.spinner(`Installing Vercel plugin for ${target}...`);
|
|
176
|
-
const exitCode = await new Promise((resolve) => {
|
|
177
|
-
const child = spawn(
|
|
178
|
-
"npx",
|
|
179
|
-
[
|
|
180
|
-
"plugins",
|
|
181
|
-
"add",
|
|
182
|
-
"vercel/vercel-plugin",
|
|
183
|
-
"--target",
|
|
184
|
-
target,
|
|
185
|
-
"-y"
|
|
186
|
-
],
|
|
187
|
-
{ stdio: "pipe" }
|
|
188
|
-
);
|
|
189
|
-
const onSigint = () => {
|
|
190
|
-
interrupted = true;
|
|
191
|
-
child.kill();
|
|
192
|
-
};
|
|
193
|
-
process.once("SIGINT", onSigint);
|
|
194
|
-
child.on("close", (c) => {
|
|
195
|
-
process.removeListener("SIGINT", onSigint);
|
|
196
|
-
resolve(c ?? 1);
|
|
197
|
-
});
|
|
198
|
-
child.on("error", () => {
|
|
199
|
-
process.removeListener("SIGINT", onSigint);
|
|
200
|
-
resolve(1);
|
|
201
|
-
});
|
|
202
|
-
});
|
|
203
|
-
output_manager_default.stopSpinner();
|
|
204
|
-
if (interrupted) {
|
|
205
|
-
output_manager_default.log("Plugin installation cancelled.");
|
|
206
|
-
break;
|
|
207
|
-
}
|
|
208
|
-
if (exitCode === 0) {
|
|
209
|
-
output_manager_default.success(`Installed Vercel plugin for ${target}`);
|
|
210
|
-
} else {
|
|
211
|
-
output_manager_default.debug(`Failed to install Vercel plugin for ${target}`);
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
} else {
|
|
215
|
-
prefs.pluginDismissed = true;
|
|
216
|
-
await writePrefs(prefs);
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
} catch (err) {
|
|
221
|
-
output_manager_default.debug(`Auto-install agent tooling failed: ${err}`);
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
async function showPluginTipIfNeeded() {
|
|
225
|
-
try {
|
|
226
|
-
const prefs = await readPrefs();
|
|
227
|
-
if (prefs.pluginDismissed)
|
|
228
|
-
return;
|
|
229
|
-
const targets = await getPluginTargets();
|
|
230
|
-
for (const target of targets) {
|
|
231
|
-
if (!await isPluginInstalledForTarget(target)) {
|
|
232
|
-
output_manager_default.log(
|
|
233
|
-
import_chalk.default.dim(
|
|
234
|
-
"Tip: Run `npx plugins add vercel/vercel-plugin` to enhance your agent experience"
|
|
235
|
-
)
|
|
236
|
-
);
|
|
237
|
-
return;
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
} catch {
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
export {
|
|
245
|
-
autoInstallAgentTooling,
|
|
246
|
-
showPluginTipIfNeeded
|
|
247
|
-
};
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
import { createRequire as __createRequire } from 'node:module';
|
|
2
|
-
import { fileURLToPath as __fileURLToPath } from 'node:url';
|
|
3
|
-
import { dirname as __dirname_ } from 'node:path';
|
|
4
|
-
const require = __createRequire(import.meta.url);
|
|
5
|
-
const __filename = __fileURLToPath(import.meta.url);
|
|
6
|
-
const __dirname = __dirname_(__filename);
|
|
7
|
-
import {
|
|
8
|
-
getEnvTargetPlaceholder
|
|
9
|
-
} from "./chunk-537JTK2U.js";
|
|
10
|
-
import {
|
|
11
|
-
yesOption
|
|
12
|
-
} from "./chunk-RFMC2QXQ.js";
|
|
13
|
-
import {
|
|
14
|
-
packageName
|
|
15
|
-
} from "./chunk-ECRBC4HL.js";
|
|
16
|
-
|
|
17
|
-
// src/commands/build/command.ts
|
|
18
|
-
var buildCommand = {
|
|
19
|
-
name: "build",
|
|
20
|
-
aliases: [],
|
|
21
|
-
description: "Build the project.",
|
|
22
|
-
arguments: [],
|
|
23
|
-
options: [
|
|
24
|
-
{
|
|
25
|
-
name: "prod",
|
|
26
|
-
description: "Build a production deployment",
|
|
27
|
-
shorthand: null,
|
|
28
|
-
type: Boolean,
|
|
29
|
-
deprecated: false
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
name: "target",
|
|
33
|
-
shorthand: null,
|
|
34
|
-
type: String,
|
|
35
|
-
argument: "TARGET",
|
|
36
|
-
deprecated: false,
|
|
37
|
-
description: "Specify the target environment"
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
name: "output",
|
|
41
|
-
description: "Directory where built assets will be written to",
|
|
42
|
-
shorthand: null,
|
|
43
|
-
argument: "DIR",
|
|
44
|
-
type: String,
|
|
45
|
-
deprecated: false
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
...yesOption,
|
|
49
|
-
description: "Skip the confirmation prompt about pulling environment variables and project settings when not found locally"
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
name: "standalone",
|
|
53
|
-
description: "Create a standalone build with all dependencies inlined into function output folders",
|
|
54
|
-
shorthand: null,
|
|
55
|
-
type: Boolean,
|
|
56
|
-
deprecated: false
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
name: "id",
|
|
60
|
-
description: "Deployment ID to pull environment variables from (e.g. dpl_xxx)",
|
|
61
|
-
shorthand: null,
|
|
62
|
-
type: String,
|
|
63
|
-
argument: "ID",
|
|
64
|
-
deprecated: false
|
|
65
|
-
}
|
|
66
|
-
],
|
|
67
|
-
examples: [
|
|
68
|
-
{
|
|
69
|
-
name: "Build the project",
|
|
70
|
-
value: `${packageName} build`
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
name: "Build the project in a specific directory",
|
|
74
|
-
value: `${packageName} build --cwd ./path-to-project`
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
name: "Build with deployment-scoped environment variables",
|
|
78
|
-
value: `${packageName} build --id dpl_xxx`
|
|
79
|
-
}
|
|
80
|
-
]
|
|
81
|
-
};
|
|
82
|
-
|
|
83
|
-
// src/commands/pull/command.ts
|
|
84
|
-
var pullCommand = {
|
|
85
|
-
name: "pull",
|
|
86
|
-
aliases: [],
|
|
87
|
-
description: "Pull latest environment variables and project settings from Vercel. ",
|
|
88
|
-
arguments: [
|
|
89
|
-
{
|
|
90
|
-
name: "project-path",
|
|
91
|
-
required: false
|
|
92
|
-
}
|
|
93
|
-
],
|
|
94
|
-
options: [
|
|
95
|
-
{
|
|
96
|
-
name: "environment",
|
|
97
|
-
description: "Deployment environment [development]",
|
|
98
|
-
argument: "TARGET",
|
|
99
|
-
shorthand: null,
|
|
100
|
-
type: String,
|
|
101
|
-
deprecated: false
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
name: "git-branch",
|
|
105
|
-
description: "Specify the Git branch to pull specific Environment Variables for",
|
|
106
|
-
argument: "NAME",
|
|
107
|
-
shorthand: null,
|
|
108
|
-
type: String,
|
|
109
|
-
deprecated: false
|
|
110
|
-
},
|
|
111
|
-
{
|
|
112
|
-
name: "prod",
|
|
113
|
-
shorthand: null,
|
|
114
|
-
type: Boolean,
|
|
115
|
-
deprecated: false
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
...yesOption,
|
|
119
|
-
description: "Skip questions when setting up new project using default scope and settings"
|
|
120
|
-
}
|
|
121
|
-
],
|
|
122
|
-
examples: [
|
|
123
|
-
{
|
|
124
|
-
name: "Pull the latest Environment Variables and Project Settings from the cloud",
|
|
125
|
-
value: `${packageName} pull`
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
name: "Pull the latest Environment Variables and Project Settings from the cloud targeting a directory",
|
|
129
|
-
value: `${packageName} pull ./path-to-project`
|
|
130
|
-
},
|
|
131
|
-
{
|
|
132
|
-
name: "Pull for a specific environment",
|
|
133
|
-
value: `${packageName} pull --environment=${getEnvTargetPlaceholder()}`
|
|
134
|
-
},
|
|
135
|
-
{
|
|
136
|
-
name: "Pull for a preview feature branch",
|
|
137
|
-
value: `${packageName} pull --environment=preview --git-branch=feature-branch`
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
name: "If you want to download environment variables to a specific file, use `vercel env pull` instead",
|
|
141
|
-
value: `${packageName} env pull`
|
|
142
|
-
}
|
|
143
|
-
]
|
|
144
|
-
};
|
|
145
|
-
|
|
146
|
-
export {
|
|
147
|
-
buildCommand,
|
|
148
|
-
pullCommand
|
|
149
|
-
};
|