vercel-cli 48.1.0__tar.gz → 48.1.1__tar.gz
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.
Potentially problematic release.
This version of vercel-cli might be problematic. Click here for more details.
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/PKG-INFO +1 -1
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/dist/index.js +86 -30
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/.package-lock.json +7 -4
- vercel_cli-48.1.1/vercel_cli/vendor/node_modules/@vercel/detect-agent/CHANGELOG.md +19 -0
- vercel_cli-48.1.1/vercel_cli/vendor/node_modules/@vercel/detect-agent/README.md +123 -0
- vercel_cli-48.1.1/vercel_cli/vendor/node_modules/@vercel/detect-agent/dist/index.d.ts +29 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/detect-agent/dist/index.js +28 -11
- vercel_cli-48.1.1/vercel_cli/vendor/node_modules/@vercel/detect-agent/package.json +59 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/package.json +2 -2
- vercel_cli-48.1.0/vercel_cli/vendor/node_modules/@vercel/detect-agent/dist/index.d.ts +0 -1
- vercel_cli-48.1.0/vercel_cli/vendor/node_modules/@vercel/detect-agent/package.json +0 -31
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/.gitignore +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/README.md +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/pyproject.toml +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/LICENSE +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/README.md +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/dist/VERCEL_DIR_README.txt +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/dist/builder-worker.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/dist/get-latest-worker.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/dist/vc.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/CHANGELOG.md +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/LICENSE +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/build.mjs +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/clone-env.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/clone-env.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/debug.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/debug.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/default-cache-path-glob.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/default-cache-path-glob.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/edge-function.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/edge-function.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/errors.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/errors.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/file-blob.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/file-blob.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/file-fs-ref.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/file-fs-ref.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/file-ref.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/file-ref.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/download.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/download.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/get-writable-directory.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/get-writable-directory.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/glob.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/glob.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/node-version.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/node-version.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/normalize-path.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/normalize-path.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/read-config-file.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/read-config-file.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/rename.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/rename.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/run-user-scripts.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/run-user-scripts.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/stream-to-buffer.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/fs/stream-to-buffer.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/get-ignore-filter.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/get-ignore-filter.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/get-installed-package-version.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/get-installed-package-version.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/get-platform-env.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/get-platform-env.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/get-prefixed-env-vars.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/get-prefixed-env-vars.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/hard-link-dir.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/hard-link-dir.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/index.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/index.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/lambda.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/lambda.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/nodejs-lambda.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/nodejs-lambda.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/os.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/os.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/prerender.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/prerender.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/schemas.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/schemas.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/should-serve.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/should-serve.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/trace/constants.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/trace/constants.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/trace/index.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/trace/index.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/trace/trace.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/trace/trace.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/types.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/types.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/validate-npmrc.d.ts +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/dist/validate-npmrc.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/file-blob.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/file-fs-ref.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/file-ref.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/fs/download.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/fs/get-writable-directory.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/fs/glob.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/fs/rename.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/fs/run-user-scripts.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/fs/stream-to-buffer.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/lambda.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/package.json +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/detect-agent/LICENSE +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/python/LICENSE +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/python/dist/index.js +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/python/package.json +0 -0
- {vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/python/vc_init.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: vercel-cli
|
|
3
|
-
Version: 48.1.
|
|
3
|
+
Version: 48.1.1
|
|
4
4
|
Summary: Vercel CLI packaged for Python (bundled Node.js, vendored npm)
|
|
5
5
|
Project-URL: Homepage, https://github.com/nuage-studio/vercel-cli-python
|
|
6
6
|
Project-URL: Repository, https://github.com/nuage-studio/vercel-cli-python
|
|
@@ -31624,6 +31624,15 @@ var init_command3 = __esm({
|
|
|
31624
31624
|
...yesOption,
|
|
31625
31625
|
description: "Skip the confirmation prompt about pulling environment variables and project settings when not found locally"
|
|
31626
31626
|
}
|
|
31627
|
+
// FIXME: standalone:replace env var with flag
|
|
31628
|
+
// {
|
|
31629
|
+
// name: 'experimentalStandalone',
|
|
31630
|
+
// description:
|
|
31631
|
+
// 'Create a standalone build with all dependencies inlined into function output folders',
|
|
31632
|
+
// shorthand: null,
|
|
31633
|
+
// type: Boolean,
|
|
31634
|
+
// deprecated: false,
|
|
31635
|
+
// },
|
|
31627
31636
|
],
|
|
31628
31637
|
examples: [
|
|
31629
31638
|
{
|
|
@@ -116930,7 +116939,7 @@ var require_frameworks = __commonJS2({
|
|
|
116930
116939
|
getOutputDirName: async () => "public"
|
|
116931
116940
|
},
|
|
116932
116941
|
{
|
|
116933
|
-
name: "
|
|
116942
|
+
name: "H3",
|
|
116934
116943
|
slug: "h3",
|
|
116935
116944
|
logo: "https://api-frameworks.vercel.sh/framework-logos/h3.svg",
|
|
116936
116945
|
tagline: "Universal, Tiny, and Fast Servers",
|
|
@@ -119368,7 +119377,7 @@ var require_detect_builders = __commonJS2({
|
|
|
119368
119377
|
builders.push(...apiBuilders);
|
|
119369
119378
|
}
|
|
119370
119379
|
if (frontendBuilder) {
|
|
119371
|
-
if (frontendBuilder?.use === "@vercel/express") {
|
|
119380
|
+
if (frontendBuilder?.use === "@vercel/express" || frontendBuilder?.use === "@vercel/hono") {
|
|
119372
119381
|
builders.push({
|
|
119373
119382
|
src: "public/**/*",
|
|
119374
119383
|
use: "@vercel/static",
|
|
@@ -144699,7 +144708,7 @@ var init_unzip = __esm({
|
|
|
144699
144708
|
});
|
|
144700
144709
|
|
|
144701
144710
|
// src/util/build/write-build-result.ts
|
|
144702
|
-
async function writeBuildResult(repoRootPath, outputDir, buildResult, build2, builder, builderPkg, vercelConfig) {
|
|
144711
|
+
async function writeBuildResult(repoRootPath, outputDir, buildResult, build2, builder, builderPkg, vercelConfig, standalone = false) {
|
|
144703
144712
|
const { version: version2 } = builder;
|
|
144704
144713
|
if (typeof version2 !== "number" || version2 === 2) {
|
|
144705
144714
|
return writeBuildResultV2(
|
|
@@ -144707,7 +144716,8 @@ async function writeBuildResult(repoRootPath, outputDir, buildResult, build2, bu
|
|
|
144707
144716
|
outputDir,
|
|
144708
144717
|
buildResult,
|
|
144709
144718
|
build2,
|
|
144710
|
-
vercelConfig
|
|
144719
|
+
vercelConfig,
|
|
144720
|
+
standalone
|
|
144711
144721
|
);
|
|
144712
144722
|
} else if (version2 === 3) {
|
|
144713
144723
|
return writeBuildResultV3(
|
|
@@ -144715,7 +144725,8 @@ async function writeBuildResult(repoRootPath, outputDir, buildResult, build2, bu
|
|
|
144715
144725
|
outputDir,
|
|
144716
144726
|
buildResult,
|
|
144717
144727
|
build2,
|
|
144718
|
-
vercelConfig
|
|
144728
|
+
vercelConfig,
|
|
144729
|
+
standalone
|
|
144719
144730
|
);
|
|
144720
144731
|
}
|
|
144721
144732
|
throw new Error(
|
|
@@ -144738,7 +144749,7 @@ function isFile(v) {
|
|
|
144738
144749
|
function stripDuplicateSlashes(path11) {
|
|
144739
144750
|
return normalize2(path11).replace(/(^\/|\/$)/g, "");
|
|
144740
144751
|
}
|
|
144741
|
-
async function writeBuildResultV2(repoRootPath, outputDir, buildResult, build2, vercelConfig) {
|
|
144752
|
+
async function writeBuildResultV2(repoRootPath, outputDir, buildResult, build2, vercelConfig, standalone = false) {
|
|
144742
144753
|
if ("buildOutputPath" in buildResult) {
|
|
144743
144754
|
await mergeBuilderOutput(outputDir, buildResult);
|
|
144744
144755
|
return;
|
|
@@ -144761,7 +144772,8 @@ async function writeBuildResultV2(repoRootPath, outputDir, buildResult, build2,
|
|
|
144761
144772
|
output2,
|
|
144762
144773
|
normalizedPath,
|
|
144763
144774
|
void 0,
|
|
144764
|
-
existingFunctions
|
|
144775
|
+
existingFunctions,
|
|
144776
|
+
standalone
|
|
144765
144777
|
);
|
|
144766
144778
|
} else if (isPrerender(output2)) {
|
|
144767
144779
|
if (!output2.lambda) {
|
|
@@ -144775,7 +144787,8 @@ async function writeBuildResultV2(repoRootPath, outputDir, buildResult, build2,
|
|
|
144775
144787
|
output2.lambda,
|
|
144776
144788
|
normalizedPath,
|
|
144777
144789
|
void 0,
|
|
144778
|
-
existingFunctions
|
|
144790
|
+
existingFunctions,
|
|
144791
|
+
standalone
|
|
144779
144792
|
);
|
|
144780
144793
|
let fallback = output2.fallback;
|
|
144781
144794
|
if (fallback) {
|
|
@@ -144827,7 +144840,8 @@ async function writeBuildResultV2(repoRootPath, outputDir, buildResult, build2,
|
|
|
144827
144840
|
outputDir,
|
|
144828
144841
|
output2,
|
|
144829
144842
|
normalizedPath,
|
|
144830
|
-
existingFunctions
|
|
144843
|
+
existingFunctions,
|
|
144844
|
+
standalone
|
|
144831
144845
|
);
|
|
144832
144846
|
} else {
|
|
144833
144847
|
throw new Error(
|
|
@@ -144837,7 +144851,7 @@ async function writeBuildResultV2(repoRootPath, outputDir, buildResult, build2,
|
|
|
144837
144851
|
}
|
|
144838
144852
|
return Object.keys(overrides).length > 0 ? overrides : void 0;
|
|
144839
144853
|
}
|
|
144840
|
-
async function writeBuildResultV3(repoRootPath, outputDir, buildResult, build2, vercelConfig) {
|
|
144854
|
+
async function writeBuildResultV3(repoRootPath, outputDir, buildResult, build2, vercelConfig, standalone = false) {
|
|
144841
144855
|
const { output: output2 } = buildResult;
|
|
144842
144856
|
const src = build2.src;
|
|
144843
144857
|
if (typeof src !== "string") {
|
|
@@ -144857,10 +144871,19 @@ async function writeBuildResultV3(repoRootPath, outputDir, buildResult, build2,
|
|
|
144857
144871
|
outputDir,
|
|
144858
144872
|
output2,
|
|
144859
144873
|
path11,
|
|
144860
|
-
functionConfiguration
|
|
144874
|
+
functionConfiguration,
|
|
144875
|
+
void 0,
|
|
144876
|
+
standalone
|
|
144861
144877
|
);
|
|
144862
144878
|
} else if (isEdgeFunction(output2)) {
|
|
144863
|
-
await writeEdgeFunction(
|
|
144879
|
+
await writeEdgeFunction(
|
|
144880
|
+
repoRootPath,
|
|
144881
|
+
outputDir,
|
|
144882
|
+
output2,
|
|
144883
|
+
path11,
|
|
144884
|
+
void 0,
|
|
144885
|
+
standalone
|
|
144886
|
+
);
|
|
144864
144887
|
} else {
|
|
144865
144888
|
throw new Error(
|
|
144866
144889
|
`Unsupported output type: "${output2.type}" for ${build2.src}`
|
|
@@ -144911,7 +144934,7 @@ async function writeFunctionSymlink(outputDir, dest, fn2, existingFunctions) {
|
|
|
144911
144934
|
await import_fs_extra12.default.symlink(target, dest);
|
|
144912
144935
|
return true;
|
|
144913
144936
|
}
|
|
144914
|
-
async function writeEdgeFunction(repoRootPath, outputDir, edgeFunction, path11, existingFunctions) {
|
|
144937
|
+
async function writeEdgeFunction(repoRootPath, outputDir, edgeFunction, path11, existingFunctions, standalone = false) {
|
|
144915
144938
|
const dest = (0, import_path21.join)(outputDir, "functions", `${path11}.func`);
|
|
144916
144939
|
if (existingFunctions) {
|
|
144917
144940
|
if (await writeFunctionSymlink(
|
|
@@ -144926,11 +144949,17 @@ async function writeEdgeFunction(repoRootPath, outputDir, edgeFunction, path11,
|
|
|
144926
144949
|
}
|
|
144927
144950
|
await import_fs_extra12.default.mkdirp(dest);
|
|
144928
144951
|
const ops = [];
|
|
144929
|
-
const
|
|
144952
|
+
const sharedDest = (0, import_path21.join)(outputDir, "shared");
|
|
144953
|
+
const { files, filePathMap, shared } = filesWithoutFsRefs(
|
|
144930
144954
|
edgeFunction.files,
|
|
144931
|
-
repoRootPath
|
|
144955
|
+
repoRootPath,
|
|
144956
|
+
sharedDest,
|
|
144957
|
+
standalone
|
|
144932
144958
|
);
|
|
144933
144959
|
ops.push((0, import_build_utils11.download)(files, dest));
|
|
144960
|
+
if (shared) {
|
|
144961
|
+
ops.push((0, import_build_utils11.download)(shared, sharedDest));
|
|
144962
|
+
}
|
|
144934
144963
|
const config2 = {
|
|
144935
144964
|
runtime: "edge",
|
|
144936
144965
|
...edgeFunction,
|
|
@@ -144947,7 +144976,7 @@ async function writeEdgeFunction(repoRootPath, outputDir, edgeFunction, path11,
|
|
|
144947
144976
|
);
|
|
144948
144977
|
await Promise.all(ops);
|
|
144949
144978
|
}
|
|
144950
|
-
async function writeLambda(repoRootPath, outputDir, lambda, path11, functionConfiguration, existingFunctions) {
|
|
144979
|
+
async function writeLambda(repoRootPath, outputDir, lambda, path11, functionConfiguration, existingFunctions, standalone = false) {
|
|
144951
144980
|
const dest = (0, import_path21.join)(outputDir, "functions", `${path11}.func`);
|
|
144952
144981
|
if (existingFunctions) {
|
|
144953
144982
|
if (await writeFunctionSymlink(outputDir, dest, lambda, existingFunctions)) {
|
|
@@ -144959,9 +144988,18 @@ async function writeLambda(repoRootPath, outputDir, lambda, path11, functionConf
|
|
|
144959
144988
|
const ops = [];
|
|
144960
144989
|
let filePathMap;
|
|
144961
144990
|
if (lambda.files) {
|
|
144962
|
-
const
|
|
144991
|
+
const sharedDest = (0, import_path21.join)(outputDir, "shared");
|
|
144992
|
+
const f = filesWithoutFsRefs(
|
|
144993
|
+
lambda.files,
|
|
144994
|
+
repoRootPath,
|
|
144995
|
+
sharedDest,
|
|
144996
|
+
standalone
|
|
144997
|
+
);
|
|
144963
144998
|
filePathMap = f.filePathMap;
|
|
144964
144999
|
ops.push((0, import_build_utils11.download)(f.files, dest));
|
|
145000
|
+
if (f.shared) {
|
|
145001
|
+
ops.push((0, import_build_utils11.download)(f.shared, sharedDest));
|
|
145002
|
+
}
|
|
144965
145003
|
} else if (lambda.zipBuffer) {
|
|
144966
145004
|
ops.push(unzip(lambda.zipBuffer, dest));
|
|
144967
145005
|
} else {
|
|
@@ -145053,21 +145091,29 @@ async function* findDirs(name, dir, root = dir) {
|
|
|
145053
145091
|
}
|
|
145054
145092
|
}
|
|
145055
145093
|
}
|
|
145056
|
-
function filesWithoutFsRefs(files, repoRootPath) {
|
|
145094
|
+
function filesWithoutFsRefs(files, repoRootPath, sharedDest, standalone) {
|
|
145057
145095
|
let filePathMap;
|
|
145058
145096
|
const out = {};
|
|
145097
|
+
const shared = {};
|
|
145059
145098
|
for (const [path11, file] of Object.entries(files)) {
|
|
145060
145099
|
if (file.type === "FileFsRef") {
|
|
145061
145100
|
if (!filePathMap)
|
|
145062
145101
|
filePathMap = {};
|
|
145063
|
-
|
|
145064
|
-
|
|
145065
|
-
|
|
145102
|
+
if (standalone && sharedDest) {
|
|
145103
|
+
shared[path11] = file;
|
|
145104
|
+
filePathMap[(0, import_build_utils11.normalizePath)((0, import_path21.join)(sharedDest, path11))] = (0, import_build_utils11.normalizePath)(
|
|
145105
|
+
(0, import_path21.relative)(repoRootPath, (0, import_path21.join)(sharedDest, file.fsPath))
|
|
145106
|
+
);
|
|
145107
|
+
} else {
|
|
145108
|
+
filePathMap[(0, import_build_utils11.normalizePath)(path11)] = (0, import_build_utils11.normalizePath)(
|
|
145109
|
+
(0, import_path21.relative)(repoRootPath, file.fsPath)
|
|
145110
|
+
);
|
|
145111
|
+
}
|
|
145066
145112
|
} else {
|
|
145067
145113
|
out[path11] = file;
|
|
145068
145114
|
}
|
|
145069
145115
|
}
|
|
145070
|
-
return { files: out, filePathMap };
|
|
145116
|
+
return { files: out, filePathMap, shared };
|
|
145071
145117
|
}
|
|
145072
145118
|
var import_fs_extra12, import_mime_types, import_path21, import_build_utils11, import_promisepipe2, import_client3, normalize2, OUTPUT_DIR;
|
|
145073
145119
|
var init_write_build_result = __esm({
|
|
@@ -145335,6 +145381,11 @@ var init_build = __esm({
|
|
|
145335
145381
|
this.trackCliFlag("yes");
|
|
145336
145382
|
}
|
|
145337
145383
|
}
|
|
145384
|
+
trackCliFlagStandalone(flag) {
|
|
145385
|
+
if (flag) {
|
|
145386
|
+
this.trackCliFlag("standalone");
|
|
145387
|
+
}
|
|
145388
|
+
}
|
|
145338
145389
|
};
|
|
145339
145390
|
}
|
|
145340
145391
|
});
|
|
@@ -146710,6 +146761,7 @@ async function main3(client2) {
|
|
|
146710
146761
|
flags: parsedArgs.flags
|
|
146711
146762
|
}) || "preview";
|
|
146712
146763
|
const yes = Boolean(parsedArgs.flags["--yes"]);
|
|
146764
|
+
const standalone = process.env.VERCEL_EXPERIMENTAL_STANDALONE_BUILD === "1";
|
|
146713
146765
|
try {
|
|
146714
146766
|
await (0, import_build_utils13.validateNpmrc)(cwd);
|
|
146715
146767
|
} catch (err) {
|
|
@@ -146816,7 +146868,7 @@ async function main3(client2) {
|
|
|
146816
146868
|
process.env.NOW_BUILDER = "1";
|
|
146817
146869
|
try {
|
|
146818
146870
|
await rootSpan.child("vc.doBuild").trace(
|
|
146819
|
-
(span) => doBuild(client2, project, buildsJson, cwd, outputDir, span)
|
|
146871
|
+
(span) => doBuild(client2, project, buildsJson, cwd, outputDir, span, standalone)
|
|
146820
146872
|
);
|
|
146821
146873
|
} finally {
|
|
146822
146874
|
await rootSpan.stop();
|
|
@@ -146849,7 +146901,7 @@ async function main3(client2) {
|
|
|
146849
146901
|
}
|
|
146850
146902
|
}
|
|
146851
146903
|
}
|
|
146852
|
-
async function doBuild(client2, project, buildsJson, cwd, outputDir, span) {
|
|
146904
|
+
async function doBuild(client2, project, buildsJson, cwd, outputDir, span, standalone = false) {
|
|
146853
146905
|
const { localConfigPath } = client2;
|
|
146854
146906
|
const workPath = (0, import_path27.join)(cwd, project.settings.rootDirectory || ".");
|
|
146855
146907
|
const [pkg, vercelConfig, nowConfig, hasInstrumentation] = await Promise.all([
|
|
@@ -147085,7 +147137,8 @@ async function doBuild(client2, project, buildsJson, cwd, outputDir, span) {
|
|
|
147085
147137
|
build2,
|
|
147086
147138
|
builder,
|
|
147087
147139
|
builderPkg,
|
|
147088
|
-
localConfig
|
|
147140
|
+
localConfig,
|
|
147141
|
+
standalone
|
|
147089
147142
|
)
|
|
147090
147143
|
).then(
|
|
147091
147144
|
(override) => {
|
|
@@ -151041,7 +151094,8 @@ ${err.stack}`);
|
|
|
151041
151094
|
printError(err);
|
|
151042
151095
|
return 1;
|
|
151043
151096
|
}
|
|
151044
|
-
const
|
|
151097
|
+
const { isAgent } = await (0, import_detect_agent.determineAgent)();
|
|
151098
|
+
const guidanceMode = parsedArguments.flags["--guidance"] ?? isAgent;
|
|
151045
151099
|
return printDeploymentStatus(deployment, deployStamp, noWait, guidanceMode);
|
|
151046
151100
|
};
|
|
151047
151101
|
addProcessEnv = async (log2, env) => {
|
|
@@ -174373,7 +174427,8 @@ async function add4(client2, argv) {
|
|
|
174373
174427
|
)}
|
|
174374
174428
|
`
|
|
174375
174429
|
);
|
|
174376
|
-
const
|
|
174430
|
+
const { isAgent } = await (0, import_detect_agent2.determineAgent)();
|
|
174431
|
+
const guidanceMode = parsedArgs.flags["--guidance"] ?? isAgent;
|
|
174377
174432
|
if (guidanceMode) {
|
|
174378
174433
|
suggestNextCommands([getCommandName(`env ls`), getCommandName(`env pull`)]);
|
|
174379
174434
|
}
|
|
@@ -174558,7 +174613,8 @@ async function ls5(client2, argv) {
|
|
|
174558
174613
|
client2.stdout.write(`${getTable(link4, envs, customEnvs)}
|
|
174559
174614
|
`);
|
|
174560
174615
|
}
|
|
174561
|
-
const
|
|
174616
|
+
const { isAgent } = await (0, import_detect_agent3.determineAgent)();
|
|
174617
|
+
const guidanceMode = parsedArgs.flags["--guidance"] ?? isAgent;
|
|
174562
174618
|
if (guidanceMode) {
|
|
174563
174619
|
suggestNextCommands([
|
|
174564
174620
|
getCommandName(`env add`),
|
|
@@ -186027,8 +186083,8 @@ var main17 = async () => {
|
|
|
186027
186083
|
store: telemetryEventStore
|
|
186028
186084
|
}
|
|
186029
186085
|
});
|
|
186030
|
-
const agent = await (0, import_detect_agent4.determineAgent)();
|
|
186031
|
-
telemetry2.trackAgenticUse(agent);
|
|
186086
|
+
const { agent } = await (0, import_detect_agent4.determineAgent)();
|
|
186087
|
+
telemetry2.trackAgenticUse(agent?.name);
|
|
186032
186088
|
telemetry2.trackCPUs();
|
|
186033
186089
|
telemetry2.trackPlatform();
|
|
186034
186090
|
telemetry2.trackArch();
|
|
@@ -9,10 +9,13 @@
|
|
|
9
9
|
"license": "Apache-2.0"
|
|
10
10
|
},
|
|
11
11
|
"node_modules/@vercel/detect-agent": {
|
|
12
|
-
"version": "0.
|
|
13
|
-
"resolved": "https://registry.npmjs.org/@vercel/detect-agent/-/detect-agent-0.
|
|
14
|
-
"integrity": "sha512-
|
|
15
|
-
"license": "Apache-2.0"
|
|
12
|
+
"version": "1.0.0",
|
|
13
|
+
"resolved": "https://registry.npmjs.org/@vercel/detect-agent/-/detect-agent-1.0.0.tgz",
|
|
14
|
+
"integrity": "sha512-AIPgNkmtFcDgPCl+xvTT1ga90OL7OTX2RKM4zu0PMpwBthPfN2DpdHy10n3bh8K+CA22GDU0/ncjzprZsrk0sw==",
|
|
15
|
+
"license": "Apache-2.0",
|
|
16
|
+
"engines": {
|
|
17
|
+
"node": ">=14"
|
|
18
|
+
}
|
|
16
19
|
},
|
|
17
20
|
"node_modules/@vercel/python": {
|
|
18
21
|
"version": "5.0.5",
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# @vercel/detect-agent
|
|
2
|
+
|
|
3
|
+
## 1.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- Change return format to be an object to future proof ([#13965](https://github.com/vercel/vercel/pull/13965))
|
|
8
|
+
|
|
9
|
+
## 0.2.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- Improve agent detection ([#13762](https://github.com/vercel/vercel/pull/13762))
|
|
14
|
+
|
|
15
|
+
## 0.1.0
|
|
16
|
+
|
|
17
|
+
### Minor Changes
|
|
18
|
+
|
|
19
|
+
- Initial release ([#13745](https://github.com/vercel/vercel/pull/13745))
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# @vercel/detect-agent
|
|
2
|
+
|
|
3
|
+
A lightweight utility for detecting if code is being executed by an AI agent or automated development environment.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @vercel/detect-agent
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```typescript
|
|
14
|
+
import { determineAgent } from '@vercel/detect-agent';
|
|
15
|
+
|
|
16
|
+
const { isAgent, agent } = await determineAgent();
|
|
17
|
+
|
|
18
|
+
if (isAgent) {
|
|
19
|
+
console.log(`Running in ${agent.name} environment`);
|
|
20
|
+
// Adapt behavior for AI agent context
|
|
21
|
+
}
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Supported Agents
|
|
25
|
+
|
|
26
|
+
This package can detect the following AI agents and development environments:
|
|
27
|
+
|
|
28
|
+
- **Custom agents** via `AI_AGENT` environment variable
|
|
29
|
+
- **Cursor** (cursor editor and cursor-cli)
|
|
30
|
+
- **Claude Code** (Anthropic's Claude)
|
|
31
|
+
- **Devin** (Cognition Labs)
|
|
32
|
+
- **Gemini CLI** (Google)
|
|
33
|
+
- **Codex** (OpenAI)
|
|
34
|
+
- **Replit** (online IDE)
|
|
35
|
+
|
|
36
|
+
## The AI_AGENT Standard
|
|
37
|
+
|
|
38
|
+
We're promoting `AI_AGENT` as a universal environment variable standard for AI development tools. This allows any tool or library to easily detect when it's running in an AI-driven environment.
|
|
39
|
+
|
|
40
|
+
### For AI Tool Developers
|
|
41
|
+
|
|
42
|
+
Set the `AI_AGENT` environment variable to identify your tool:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
export AI_AGENT="your-tool-name"
|
|
46
|
+
# or
|
|
47
|
+
AI_AGENT="your-tool-name" your-command
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### Recommended Naming Convention
|
|
51
|
+
|
|
52
|
+
- Use lowercase with hyphens for multi-word names
|
|
53
|
+
- Include version information if needed, separated by an `@` symbol
|
|
54
|
+
- Examples: `claude-code`, `cursor-cli`, `devin@1`, `custom-agent@2.0`
|
|
55
|
+
|
|
56
|
+
## Use Cases
|
|
57
|
+
|
|
58
|
+
### Adaptive Behavior
|
|
59
|
+
|
|
60
|
+
```typescript
|
|
61
|
+
import { determineAgent } from '@vercel/detect-agent';
|
|
62
|
+
|
|
63
|
+
async function setupEnvironment() {
|
|
64
|
+
const { isAgent, agent } = await determineAgent();
|
|
65
|
+
|
|
66
|
+
if (isAgent) {
|
|
67
|
+
// Running in AI environment - adjust behavior
|
|
68
|
+
process.env.LOG_LEVEL = 'verbose';
|
|
69
|
+
console.log(`🤖 Detected AI agent: ${agent.name}`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Telemetry and Analytics
|
|
75
|
+
|
|
76
|
+
```typescript
|
|
77
|
+
import { determineAgent } from '@vercel/detect-agent';
|
|
78
|
+
|
|
79
|
+
async function trackUsage(event: string) {
|
|
80
|
+
const result = await determineAgent();
|
|
81
|
+
|
|
82
|
+
analytics.track(event, {
|
|
83
|
+
agent: result.isAgent ? result.agent.name : 'human',
|
|
84
|
+
timestamp: Date.now(),
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
### Feature Toggles
|
|
90
|
+
|
|
91
|
+
```typescript
|
|
92
|
+
import { determineAgent } from '@vercel/detect-agent';
|
|
93
|
+
|
|
94
|
+
async function shouldEnableFeature(feature: string) {
|
|
95
|
+
const result = await determineAgent();
|
|
96
|
+
|
|
97
|
+
// Enable experimental features for AI agents
|
|
98
|
+
if (result.isAgent && feature === 'experimental-ai-mode') {
|
|
99
|
+
return true;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
return false;
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## Contributing
|
|
107
|
+
|
|
108
|
+
We welcome contributions! Please see our [contributing guidelines](../../CONTRIBUTING.md).
|
|
109
|
+
|
|
110
|
+
### Adding New Agent Support
|
|
111
|
+
|
|
112
|
+
To add support for a new AI agent:
|
|
113
|
+
|
|
114
|
+
1. Add detection logic to `src/index.ts`
|
|
115
|
+
2. Add comprehensive test cases in `test/unit/determine-agent.test.ts`
|
|
116
|
+
3. Update this README with the new agent information
|
|
117
|
+
4. Follow the existing priority order pattern
|
|
118
|
+
|
|
119
|
+
## Links
|
|
120
|
+
|
|
121
|
+
- [GitHub Repository](https://github.com/vercel/vercel/tree/main/packages/detect-agent)
|
|
122
|
+
- [npm Package](https://www.npmjs.com/package/@vercel/detect-agent)
|
|
123
|
+
- [Vercel Documentation](https://vercel.com/docs)
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
declare const CURSOR: "cursor";
|
|
2
|
+
declare const CURSOR_CLI: "cursor-cli";
|
|
3
|
+
declare const CLAUDE: "claude";
|
|
4
|
+
declare const DEVIN: "devin";
|
|
5
|
+
declare const REPLIT: "replit";
|
|
6
|
+
declare const GEMINI: "gemini";
|
|
7
|
+
declare const CODEX: "codex";
|
|
8
|
+
export type KnownAgentNames = typeof CURSOR | typeof CURSOR_CLI | typeof CLAUDE | typeof DEVIN | typeof REPLIT | typeof GEMINI | typeof CODEX;
|
|
9
|
+
export interface KnownAgentDetails {
|
|
10
|
+
name: KnownAgentNames;
|
|
11
|
+
}
|
|
12
|
+
export type AgentResult = {
|
|
13
|
+
isAgent: true;
|
|
14
|
+
agent: KnownAgentDetails;
|
|
15
|
+
} | {
|
|
16
|
+
isAgent: false;
|
|
17
|
+
agent: undefined;
|
|
18
|
+
};
|
|
19
|
+
export declare const KNOWN_AGENTS: {
|
|
20
|
+
readonly CURSOR: "cursor";
|
|
21
|
+
readonly CURSOR_CLI: "cursor-cli";
|
|
22
|
+
readonly CLAUDE: "claude";
|
|
23
|
+
readonly DEVIN: "devin";
|
|
24
|
+
readonly REPLIT: "replit";
|
|
25
|
+
readonly GEMINI: "gemini";
|
|
26
|
+
readonly CODEX: "codex";
|
|
27
|
+
};
|
|
28
|
+
export declare function determineAgent(): Promise<AgentResult>;
|
|
29
|
+
export {};
|
|
@@ -18,12 +18,13 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
19
|
var src_exports = {};
|
|
20
20
|
__export(src_exports, {
|
|
21
|
+
KNOWN_AGENTS: () => KNOWN_AGENTS,
|
|
21
22
|
determineAgent: () => determineAgent
|
|
22
23
|
});
|
|
23
24
|
module.exports = __toCommonJS(src_exports);
|
|
24
25
|
var import_promises = require("node:fs/promises");
|
|
25
26
|
var import_node_fs = require("node:fs");
|
|
26
|
-
const
|
|
27
|
+
const DEVIN_LOCAL_PATH = "/opt/.devin";
|
|
27
28
|
const CURSOR = "cursor";
|
|
28
29
|
const CURSOR_CLI = "cursor-cli";
|
|
29
30
|
const CLAUDE = "claude";
|
|
@@ -31,36 +32,52 @@ const DEVIN = "devin";
|
|
|
31
32
|
const REPLIT = "replit";
|
|
32
33
|
const GEMINI = "gemini";
|
|
33
34
|
const CODEX = "codex";
|
|
35
|
+
const KNOWN_AGENTS = {
|
|
36
|
+
CURSOR,
|
|
37
|
+
CURSOR_CLI,
|
|
38
|
+
CLAUDE,
|
|
39
|
+
DEVIN,
|
|
40
|
+
REPLIT,
|
|
41
|
+
GEMINI,
|
|
42
|
+
CODEX
|
|
43
|
+
};
|
|
34
44
|
async function determineAgent() {
|
|
35
45
|
if (process.env.AI_AGENT) {
|
|
36
|
-
|
|
46
|
+
const name = process.env.AI_AGENT.trim();
|
|
47
|
+
if (name) {
|
|
48
|
+
return {
|
|
49
|
+
isAgent: true,
|
|
50
|
+
agent: { name }
|
|
51
|
+
};
|
|
52
|
+
}
|
|
37
53
|
}
|
|
38
54
|
if (process.env.CURSOR_TRACE_ID) {
|
|
39
|
-
return CURSOR;
|
|
55
|
+
return { isAgent: true, agent: { name: CURSOR } };
|
|
40
56
|
}
|
|
41
57
|
if (process.env.CURSOR_AGENT) {
|
|
42
|
-
return CURSOR_CLI;
|
|
58
|
+
return { isAgent: true, agent: { name: CURSOR_CLI } };
|
|
43
59
|
}
|
|
44
60
|
if (process.env.GEMINI_CLI) {
|
|
45
|
-
return GEMINI;
|
|
61
|
+
return { isAgent: true, agent: { name: GEMINI } };
|
|
46
62
|
}
|
|
47
63
|
if (process.env.CODEX_SANDBOX) {
|
|
48
|
-
return CODEX;
|
|
64
|
+
return { isAgent: true, agent: { name: CODEX } };
|
|
49
65
|
}
|
|
50
66
|
if (process.env.CLAUDECODE || process.env.CLAUDE_CODE) {
|
|
51
|
-
return CLAUDE;
|
|
67
|
+
return { isAgent: true, agent: { name: CLAUDE } };
|
|
52
68
|
}
|
|
53
69
|
if (process.env.REPL_ID) {
|
|
54
|
-
return REPLIT;
|
|
70
|
+
return { isAgent: true, agent: { name: REPLIT } };
|
|
55
71
|
}
|
|
56
72
|
try {
|
|
57
|
-
await (0, import_promises.access)(
|
|
58
|
-
return DEVIN;
|
|
73
|
+
await (0, import_promises.access)(DEVIN_LOCAL_PATH, import_node_fs.constants.F_OK);
|
|
74
|
+
return { isAgent: true, agent: { name: DEVIN } };
|
|
59
75
|
} catch (error) {
|
|
60
|
-
return false;
|
|
61
76
|
}
|
|
77
|
+
return { isAgent: false, agent: void 0 };
|
|
62
78
|
}
|
|
63
79
|
// Annotate the CommonJS export names for ESM import in node:
|
|
64
80
|
0 && (module.exports = {
|
|
81
|
+
KNOWN_AGENTS,
|
|
65
82
|
determineAgent
|
|
66
83
|
});
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@vercel/detect-agent",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Detect if code is running in an AI agent or automated development environment",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"ai",
|
|
7
|
+
"agent",
|
|
8
|
+
"detection",
|
|
9
|
+
"environment",
|
|
10
|
+
"cursor",
|
|
11
|
+
"claude",
|
|
12
|
+
"devin",
|
|
13
|
+
"automation",
|
|
14
|
+
"ai-agent"
|
|
15
|
+
],
|
|
16
|
+
"license": "Apache-2.0",
|
|
17
|
+
"author": "Vercel",
|
|
18
|
+
"main": "./dist/index.js",
|
|
19
|
+
"types": "./dist/index.d.ts",
|
|
20
|
+
"exports": {
|
|
21
|
+
".": {
|
|
22
|
+
"types": "./dist/index.d.ts",
|
|
23
|
+
"import": "./dist/index.js",
|
|
24
|
+
"require": "./dist/index.js"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"publishConfig": {
|
|
28
|
+
"access": "public"
|
|
29
|
+
},
|
|
30
|
+
"homepage": "https://github.com/vercel/vercel/tree/main/packages/detect-agent#readme",
|
|
31
|
+
"repository": {
|
|
32
|
+
"type": "git",
|
|
33
|
+
"url": "https://github.com/vercel/vercel.git",
|
|
34
|
+
"directory": "packages/detect-agent"
|
|
35
|
+
},
|
|
36
|
+
"bugs": {
|
|
37
|
+
"url": "https://github.com/vercel/vercel/issues"
|
|
38
|
+
},
|
|
39
|
+
"engines": {
|
|
40
|
+
"node": ">=14"
|
|
41
|
+
},
|
|
42
|
+
"files": [
|
|
43
|
+
"dist",
|
|
44
|
+
"README.md",
|
|
45
|
+
"CHANGELOG.md"
|
|
46
|
+
],
|
|
47
|
+
"dependencies": {},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"vite": "^5.1.6",
|
|
50
|
+
"vitest": "^2.0.1",
|
|
51
|
+
"mock-fs": "5.5.0",
|
|
52
|
+
"@types/mock-fs": "4.13.4"
|
|
53
|
+
},
|
|
54
|
+
"scripts": {
|
|
55
|
+
"build": "node ../../utils/build.mjs",
|
|
56
|
+
"test": "vitest -c ../../vitest.config.mts",
|
|
57
|
+
"type-check": "tsc --noEmit"
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
},
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@vercel/build-utils": "12.1.0",
|
|
8
|
-
"@vercel/detect-agent": "0.
|
|
8
|
+
"@vercel/detect-agent": "1.0.0",
|
|
9
9
|
"@vercel/python": "5.0.5"
|
|
10
10
|
},
|
|
11
11
|
"description": "The command-line interface for Vercel",
|
|
@@ -37,5 +37,5 @@
|
|
|
37
37
|
"vitest-run": "vitest --config ./vitest.config.mts",
|
|
38
38
|
"vitest-unit": "jest test/unit/ --listTests"
|
|
39
39
|
},
|
|
40
|
-
"version": "48.1.
|
|
40
|
+
"version": "48.1.1"
|
|
41
41
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function determineAgent(): Promise<string | false>;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@vercel/detect-agent",
|
|
3
|
-
"version": "0.2.0",
|
|
4
|
-
"license": "Apache-2.0",
|
|
5
|
-
"main": "./dist/index.js",
|
|
6
|
-
"publishConfig": {
|
|
7
|
-
"access": "public"
|
|
8
|
-
},
|
|
9
|
-
"homepage": "https://vercel.com/docs",
|
|
10
|
-
"repository": {
|
|
11
|
-
"type": "git",
|
|
12
|
-
"url": "https://github.com/vercel/vercel.git",
|
|
13
|
-
"directory": "packages/detect-agent"
|
|
14
|
-
},
|
|
15
|
-
"files": [
|
|
16
|
-
"dist"
|
|
17
|
-
],
|
|
18
|
-
"dependencies": {},
|
|
19
|
-
"devDependencies": {
|
|
20
|
-
"vite": "^5.1.6",
|
|
21
|
-
"vitest": "^2.0.1",
|
|
22
|
-
"mock-fs": "5.5.0",
|
|
23
|
-
"@types/mock-fs": "4.13.4"
|
|
24
|
-
},
|
|
25
|
-
"scripts": {
|
|
26
|
-
"build": "node ../../utils/build.mjs",
|
|
27
|
-
"vitest-run": "vitest -c ../../vitest.config.mts",
|
|
28
|
-
"vitest-unit": "glob --absolute 'test/unit/**/*.test.ts' 'test/unit/**/*.test.mts'",
|
|
29
|
-
"type-check": "tsc --noEmit"
|
|
30
|
-
}
|
|
31
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/LICENSE
RENAMED
|
File without changes
|
{vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/build.mjs
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/build-utils/lambda.js
RENAMED
|
File without changes
|
|
File without changes
|
{vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/detect-agent/LICENSE
RENAMED
|
File without changes
|
{vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/python/LICENSE
RENAMED
|
File without changes
|
{vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/python/dist/index.js
RENAMED
|
File without changes
|
{vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/python/package.json
RENAMED
|
File without changes
|
{vercel_cli-48.1.0 → vercel_cli-48.1.1}/vercel_cli/vendor/node_modules/@vercel/python/vc_init.py
RENAMED
|
File without changes
|