@socketsecurity/lib 5.28.0 → 6.0.0
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/CHANGELOG.md +64 -37
- package/README.md +1 -1
- package/dist/abort/signal.d.ts +28 -0
- package/dist/{abort.js → abort/signal.js} +12 -10
- package/dist/ai/discover.d.mts +50 -0
- package/dist/ai/discover.js +128 -0
- package/dist/ai/profiles.d.mts +39 -0
- package/dist/ai/profiles.js +61 -0
- package/dist/ai/spawn.d.mts +49 -0
- package/dist/ai/spawn.js +207 -0
- package/dist/ai/types.d.mts +117 -0
- package/dist/ai/types.js +18 -0
- package/dist/ai/worktree.d.mts +104 -0
- package/dist/ai/worktree.js +200 -0
- package/dist/ansi/constants.d.ts +10 -0
- package/dist/ansi/constants.js +45 -0
- package/dist/ansi/strip.d.ts +33 -0
- package/dist/{ansi.js → ansi/strip.js} +7 -24
- package/dist/archives/_internal.d.ts +39 -0
- package/dist/archives/_internal.js +87 -0
- package/dist/archives/detect.d.ts +19 -0
- package/dist/archives/detect.js +46 -0
- package/dist/archives/extract.d.ts +22 -0
- package/dist/archives/extract.js +53 -0
- package/dist/archives/tar.d.ts +42 -0
- package/dist/archives/tar.js +233 -0
- package/dist/archives/types.d.ts +34 -0
- package/dist/archives/types.js +18 -0
- package/dist/archives/zip.d.ts +20 -0
- package/dist/archives/zip.js +124 -0
- package/dist/argv/flag-predicates.d.ts +179 -0
- package/dist/argv/flag-predicates.js +118 -0
- package/dist/argv/flag-types.d.ts +123 -0
- package/dist/argv/flag-types.js +116 -0
- package/dist/argv/parse.d.ts +34 -33
- package/dist/argv/parse.js +6 -4
- package/dist/arrays/_internal.d.ts +43 -0
- package/dist/{arrays.js → arrays/_internal.js} +8 -41
- package/dist/arrays/chunk.d.ts +37 -0
- package/dist/arrays/chunk.js +43 -0
- package/dist/arrays/join.d.ts +76 -0
- package/dist/{env/helpers.js → arrays/join.js} +12 -18
- package/dist/arrays/predicates.d.ts +40 -0
- package/dist/arrays/predicates.js +30 -0
- package/dist/arrays/unique.d.ts +36 -0
- package/dist/arrays/unique.js +34 -0
- package/dist/bin/_internal.d.ts +22 -0
- package/dist/bin/_internal.js +43 -0
- package/dist/bin/check-primordials.d.ts +41 -15
- package/dist/bin/check-primordials.js +36 -20
- package/dist/bin/check.d.ts +7 -12
- package/dist/bin/check.js +5 -1
- package/dist/bin/exec.d.ts +37 -0
- package/dist/bin/exec.js +79 -0
- package/dist/bin/find.d.ts +58 -0
- package/dist/bin/find.js +143 -0
- package/dist/bin/resolve.d.ts +30 -0
- package/dist/bin/resolve.js +249 -0
- package/dist/bin/shadow.d.ts +16 -0
- package/dist/bin/shadow.js +36 -0
- package/dist/bin/socket-lib.d.ts +10 -14
- package/dist/bin/socket-lib.js +18 -3
- package/dist/bin/types.d.ts +34 -0
- package/dist/bin/types.js +18 -0
- package/dist/bin/which.d.ts +111 -0
- package/dist/bin/which.js +155 -0
- package/dist/cacache/_internal.d.ts +15 -0
- package/dist/cacache/_internal.js +43 -0
- package/dist/cacache/clear.d.ts +43 -0
- package/dist/cacache/clear.js +77 -0
- package/dist/cacache/read.d.ts +31 -0
- package/dist/cacache/read.js +51 -0
- package/dist/cacache/tmp.d.ts +18 -0
- package/dist/cacache/tmp.js +39 -0
- package/dist/cacache/types.d.ts +37 -0
- package/dist/cacache/types.js +18 -0
- package/dist/cacache/write.d.ts +31 -0
- package/dist/cacache/write.js +53 -0
- package/dist/checks/primordials.d.ts +69 -61
- package/dist/checks/primordials.js +141 -92
- package/dist/colors/convert.d.ts +35 -0
- package/dist/colors/convert.js +42 -0
- package/dist/colors/palette.d.ts +7 -0
- package/dist/{colors.js → colors/palette.js} +5 -17
- package/dist/colors/types.d.ts +29 -0
- package/dist/colors/types.js +18 -0
- package/dist/compression/_internal.d.ts +33 -0
- package/dist/compression/_internal.js +77 -0
- package/dist/compression/brotli.d.ts +82 -0
- package/dist/{compression.js → compression/brotli.js} +17 -145
- package/dist/compression/gzip.d.ts +70 -0
- package/dist/compression/gzip.js +142 -0
- package/dist/compression/types.d.ts +37 -0
- package/dist/compression/types.js +18 -0
- package/dist/constants/agents.d.ts +4 -3
- package/dist/constants/agents.js +7 -4
- package/dist/constants/encoding.d.ts +3 -3
- package/dist/constants/github.d.ts +2 -3
- package/dist/constants/licenses.d.ts +5 -5
- package/dist/constants/licenses.js +2 -2
- package/dist/constants/lifecycle-script-names.d.ts +3 -4
- package/dist/constants/lifecycle-script-names.js +2 -2
- package/dist/constants/maintained-node-versions.d.ts +1 -1
- package/dist/constants/maintained-node-versions.js +3 -4
- package/dist/constants/node.d.ts +21 -20
- package/dist/constants/node.js +4 -4
- package/dist/constants/package-default-node-range.d.ts +1 -1
- package/dist/constants/package-default-socket-categories.d.ts +1 -1
- package/dist/constants/package-default-socket-categories.js +2 -2
- package/dist/constants/packages.d.ts +4 -4
- package/dist/constants/packages.js +7 -5
- package/dist/constants/platform.d.ts +3 -1
- package/dist/constants/platform.js +3 -10
- package/dist/constants/{core.d.ts → sentinels.d.ts} +4 -4
- package/dist/constants/{core.js → sentinels.js} +3 -3
- package/dist/constants/socket.d.ts +4 -6
- package/dist/constants/socket.js +6 -9
- package/dist/constants/testing.d.ts +3 -3
- package/dist/constants/time.d.ts +3 -3
- package/dist/constants/typescript.d.ts +3 -3
- package/dist/cover/code.d.ts +11 -3
- package/dist/cover/code.js +26 -36
- package/dist/cover/formatters.d.ts +19 -15
- package/dist/cover/formatters.js +21 -18
- package/dist/cover/type.d.ts +4 -3
- package/dist/cover/type.js +9 -8
- package/dist/cover/types.d.ts +1 -1
- package/dist/crypto/hash.d.ts +36 -0
- package/dist/{crypto.js → crypto/hash.js} +17 -17
- package/dist/debug/_internal.d.ts +25 -0
- package/dist/debug/_internal.js +77 -0
- package/dist/debug/caller-info.d.ts +12 -0
- package/dist/debug/caller-info.js +67 -0
- package/dist/debug/namespace.d.ts +35 -0
- package/dist/debug/namespace.js +101 -0
- package/dist/{debug.d.ts → debug/output.d.ts} +23 -42
- package/dist/debug/output.js +209 -0
- package/dist/debug/types.d.ts +21 -0
- package/dist/debug/types.js +18 -0
- package/dist/dlx/_internal.d.ts +10 -0
- package/dist/dlx/_internal.js +47 -0
- package/dist/dlx/arborist.d.ts +86 -61
- package/dist/dlx/arborist.js +30 -35
- package/dist/dlx/binary-cache.d.ts +108 -0
- package/dist/dlx/binary-cache.js +212 -0
- package/dist/dlx/binary-download.d.ts +67 -0
- package/dist/dlx/binary-download.js +216 -0
- package/dist/dlx/binary-resolution.d.ts +61 -0
- package/dist/dlx/binary-resolution.js +164 -0
- package/dist/dlx/binary-types.d.ts +144 -0
- package/dist/dlx/binary-types.js +18 -0
- package/dist/dlx/binary.d.ts +39 -268
- package/dist/dlx/binary.js +38 -319
- package/dist/dlx/cache.d.ts +21 -16
- package/dist/dlx/cache.js +2 -2
- package/dist/dlx/detect.d.ts +94 -68
- package/dist/dlx/detect.js +32 -35
- package/dist/dlx/dir.d.ts +20 -18
- package/dist/dlx/dir.js +7 -14
- package/dist/dlx/firewall.d.ts +27 -0
- package/dist/dlx/firewall.js +107 -0
- package/dist/dlx/lockfile.d.ts +73 -56
- package/dist/dlx/lockfile.js +36 -44
- package/dist/dlx/manifest.d.ts +50 -51
- package/dist/dlx/manifest.js +51 -52
- package/dist/dlx/package.d.ts +83 -279
- package/dist/dlx/package.js +44 -266
- package/dist/dlx/packages.d.ts +22 -20
- package/dist/dlx/packages.js +15 -20
- package/dist/dlx/paths.d.ts +26 -23
- package/dist/dlx/paths.js +8 -15
- package/dist/dlx/spec.d.ts +25 -0
- package/dist/dlx/spec.js +63 -0
- package/dist/dlx/types.d.ts +142 -0
- package/dist/dlx/types.js +18 -0
- package/dist/eco/cargo/lockfile-format.d.ts +8 -0
- package/dist/eco/cargo/lockfile-format.js +39 -0
- package/dist/eco/cargo/manifest-format.d.ts +7 -0
- package/dist/eco/cargo/manifest-format.js +38 -0
- package/dist/eco/cargo/parse-lockfile.d.ts +84 -0
- package/dist/eco/cargo/parse-lockfile.js +257 -0
- package/dist/eco/manifest/analyze-lockfile.d.ts +10 -0
- package/dist/eco/manifest/analyze-lockfile.js +67 -0
- package/dist/eco/manifest/detect-format.d.ts +15 -0
- package/dist/eco/manifest/detect-format.js +98 -0
- package/dist/eco/manifest/find-packages.d.ts +14 -0
- package/dist/eco/manifest/find-packages.js +69 -0
- package/dist/eco/manifest/get-package-versions.d.ts +8 -0
- package/dist/eco/manifest/get-package-versions.js +52 -0
- package/dist/eco/manifest/get-package.d.ts +10 -0
- package/dist/eco/manifest/get-package.js +44 -0
- package/dist/eco/manifest/manifest-error.d.ts +18 -0
- package/dist/eco/manifest/manifest-error.js +37 -0
- package/dist/eco/manifest/parse-lockfile.d.ts +16 -0
- package/dist/eco/manifest/parse-lockfile.js +91 -0
- package/dist/eco/manifest/parse-manifest.d.ts +12 -0
- package/dist/eco/manifest/parse-manifest.js +48 -0
- package/dist/eco/manifest/parse.d.ts +9 -0
- package/dist/eco/manifest/parse.js +52 -0
- package/dist/eco/manifest/types.d.ts +10 -0
- package/dist/eco/manifest/types.js +18 -0
- package/dist/eco/npm/bun/exec.d.ts +15 -0
- package/dist/eco/npm/bun/exec.js +35 -0
- package/dist/eco/npm/manifest-format.d.ts +11 -0
- package/dist/eco/npm/manifest-format.js +38 -0
- package/dist/eco/npm/npm/exec.d.ts +24 -0
- package/dist/eco/npm/npm/exec.js +64 -0
- package/dist/eco/npm/npm/extract-package-name-from-path.d.ts +9 -0
- package/dist/eco/npm/npm/extract-package-name-from-path.js +54 -0
- package/dist/eco/npm/npm/flags.d.ts +62 -0
- package/dist/eco/npm/npm/flags.js +63 -0
- package/dist/eco/npm/npm/lockfile-format.d.ts +9 -0
- package/dist/eco/npm/npm/lockfile-format.js +42 -0
- package/dist/eco/npm/npm/parse-git-url.d.ts +13 -0
- package/dist/eco/npm/npm/parse-git-url.js +43 -0
- package/dist/eco/npm/npm/parse-lockfile.d.ts +70 -0
- package/dist/eco/npm/npm/parse-lockfile.js +224 -0
- package/dist/eco/npm/parse-package-json.d.ts +16 -0
- package/dist/eco/npm/parse-package-json.js +115 -0
- package/dist/eco/npm/pnpm/detect-pnpm-version.d.ts +7 -0
- package/dist/eco/npm/pnpm/detect-pnpm-version.js +47 -0
- package/dist/eco/npm/pnpm/exec.d.ts +26 -0
- package/dist/eco/npm/pnpm/exec.js +65 -0
- package/dist/eco/npm/pnpm/flags.d.ts +44 -0
- package/dist/eco/npm/pnpm/flags.js +76 -0
- package/dist/eco/npm/pnpm/lockfile-format.d.ts +8 -0
- package/dist/eco/npm/pnpm/lockfile-format.js +39 -0
- package/dist/eco/npm/pnpm/parse-lockfile.d.ts +69 -0
- package/dist/eco/npm/pnpm/parse-lockfile.js +274 -0
- package/dist/eco/npm/pnpm/parse-pnpm-package-id-v5.d.ts +15 -0
- package/dist/eco/npm/pnpm/parse-pnpm-package-id-v5.js +50 -0
- package/dist/eco/npm/pnpm/parse-pnpm-package-id-v6-v9.d.ts +11 -0
- package/dist/eco/npm/pnpm/parse-pnpm-package-id-v6-v9.js +52 -0
- package/dist/eco/npm/script.d.ts +35 -0
- package/dist/eco/npm/script.js +93 -0
- package/dist/eco/npm/vlt/exec.d.ts +16 -0
- package/dist/eco/npm/vlt/exec.js +35 -0
- package/dist/eco/npm/yarnpkg/yarn/exec.d.ts +28 -0
- package/dist/eco/npm/yarnpkg/yarn/exec.js +63 -0
- package/dist/eco/npm/yarnpkg/yarn/lockfile-format.d.ts +9 -0
- package/dist/eco/npm/yarnpkg/yarn/lockfile-format.js +39 -0
- package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.d.ts +61 -0
- package/dist/eco/npm/yarnpkg/yarn/parse-lockfile.js +261 -0
- package/dist/eco/npm/yarnpkg/yarn/parse-yarn-descriptor.d.ts +16 -0
- package/dist/eco/npm/yarnpkg/yarn/parse-yarn-descriptor.js +68 -0
- package/dist/{types.d.ts → eco/purl.d.ts} +14 -26
- package/dist/{types.js → eco/purl.js} +3 -3
- package/dist/eco/types.d.ts +51 -0
- package/dist/eco/types.js +18 -0
- package/dist/effects/pulse-frames.d.ts +16 -17
- package/dist/effects/pulse-frames.js +4 -4
- package/dist/effects/shimmer-keyframes.d.ts +39 -37
- package/dist/effects/shimmer-terminal.d.ts +43 -42
- package/dist/effects/shimmer-terminal.js +3 -3
- package/dist/effects/shimmer.d.ts +172 -153
- package/dist/effects/shimmer.js +78 -76
- package/dist/env/boolean.d.ts +33 -0
- package/dist/env/boolean.js +46 -0
- package/dist/env/case-insensitive.d.ts +42 -0
- package/dist/env/case-insensitive.js +42 -0
- package/dist/env/ci.d.ts +11 -12
- package/dist/env/debug.d.ts +10 -10
- package/dist/env/github.d.ts +71 -74
- package/dist/env/home.d.ts +15 -14
- package/dist/env/locale.d.ts +26 -29
- package/dist/env/node-auth-token.d.ts +10 -10
- package/dist/env/node-env.d.ts +10 -10
- package/dist/env/npm.d.ts +45 -47
- package/dist/env/number.d.ts +29 -0
- package/dist/env/number.js +54 -0
- package/dist/env/package-manager.d.ts +36 -33
- package/dist/env/package-manager.js +3 -3
- package/dist/env/path.d.ts +10 -10
- package/dist/env/pre-commit.d.ts +11 -11
- package/dist/env/pre-commit.js +2 -2
- package/dist/env/proxy.d.ts +44 -0
- package/dist/env/proxy.js +126 -0
- package/dist/env/rewire.d.ts +105 -99
- package/dist/env/rewire.js +11 -8
- package/dist/env/shell.d.ts +10 -10
- package/dist/env/socket-cli.d.ts +109 -125
- package/dist/env/socket-cli.js +7 -12
- package/dist/env/socket.d.ts +347 -130
- package/dist/env/socket.js +107 -8
- package/dist/env/string.d.ts +28 -0
- package/dist/env/string.js +47 -0
- package/dist/env/temp-dir.d.ts +26 -29
- package/dist/env/term.d.ts +10 -10
- package/dist/env/test.d.ts +29 -31
- package/dist/env/test.js +5 -4
- package/dist/env/types.d.ts +62 -0
- package/dist/env/types.js +18 -0
- package/dist/env/windows.d.ts +37 -38
- package/dist/env/xdg.d.ts +29 -29
- package/dist/errors/message.d.ts +27 -0
- package/dist/errors/message.js +49 -0
- package/dist/errors/predicates.d.ts +46 -0
- package/dist/{errors.js → errors/predicates.js} +13 -43
- package/dist/errors/stack.d.ts +16 -0
- package/dist/errors/stack.js +39 -0
- package/dist/external/@npmcli/package-json/lib/read-package.js +11 -1
- package/dist/external/@npmcli/package-json.js +300 -82
- package/dist/external/@npmcli/promise-spawn.js +15 -1
- package/dist/external/@socketregistry/packageurl-js.js +7 -1
- package/dist/external/@socketregistry/yocto-spinner.js +5 -1
- package/dist/external/@yarnpkg/extensions.js +1 -1
- package/dist/external/adm-zip.js +20 -4
- package/dist/external/debug.js +15 -1
- package/dist/external/external-pack.js +20 -4
- package/dist/external/fast-sort.js +3 -1
- package/dist/external/get-east-asian-width.js +3 -1
- package/dist/external/libnpmexec.js +5 -1
- package/dist/external/npm-pack.js +344 -113
- package/dist/external/p-map.js +7 -1
- package/dist/external/pico-pack.js +17 -1
- package/dist/external/pony-cause.js +1 -1
- package/dist/external/spdx-pack.js +3 -1
- package/dist/external/supports-color.js +1 -1
- package/dist/external/tar-fs.js +15 -1
- package/dist/external/which.js +11 -1
- package/dist/external/yargs-parser.js +15 -1
- package/dist/external-tools/bazel/asset-names.d.ts +66 -0
- package/dist/external-tools/bazel/asset-names.js +96 -0
- package/dist/external-tools/bazel/from-download.d.ts +49 -0
- package/dist/external-tools/bazel/from-download.js +49 -0
- package/dist/external-tools/bazel/from-path.d.ts +8 -0
- package/dist/external-tools/bazel/from-path.js +41 -0
- package/dist/external-tools/bazel/read-bazel-version-file.d.ts +12 -0
- package/dist/external-tools/bazel/read-bazel-version-file.js +61 -0
- package/dist/external-tools/bazel/resolve-asset-url.d.ts +14 -0
- package/dist/external-tools/bazel/resolve-asset-url.js +42 -0
- package/dist/external-tools/bazel/resolve-bazel-version.d.ts +19 -0
- package/dist/external-tools/bazel/resolve-bazel-version.js +59 -0
- package/dist/external-tools/bazel/resolve.d.ts +35 -0
- package/dist/external-tools/bazel/resolve.js +68 -0
- package/dist/external-tools/bazel/types.d.ts +22 -0
- package/dist/external-tools/bazel/types.js +18 -0
- package/dist/external-tools/cdxgen/asset-names.d.ts +58 -0
- package/dist/external-tools/cdxgen/asset-names.js +79 -0
- package/dist/external-tools/cdxgen/from-download.d.ts +43 -0
- package/dist/external-tools/cdxgen/from-download.js +83 -0
- package/dist/external-tools/cdxgen/from-path.d.ts +5 -0
- package/dist/external-tools/cdxgen/from-path.js +40 -0
- package/dist/external-tools/cdxgen/from-vfs.d.ts +7 -0
- package/dist/external-tools/cdxgen/from-vfs.js +47 -0
- package/dist/external-tools/cdxgen/resolve.d.ts +32 -0
- package/dist/external-tools/cdxgen/resolve.js +73 -0
- package/dist/external-tools/cdxgen/types.d.ts +33 -0
- package/dist/external-tools/cdxgen/types.js +18 -0
- package/dist/external-tools/from-download.d.ts +162 -0
- package/dist/external-tools/from-download.js +72 -0
- package/dist/external-tools/janus/asset-names.d.ts +36 -0
- package/dist/external-tools/janus/asset-names.js +52 -0
- package/dist/external-tools/janus/from-download.d.ts +26 -0
- package/dist/external-tools/janus/from-download.js +65 -0
- package/dist/external-tools/janus/from-path.d.ts +5 -0
- package/dist/external-tools/janus/from-path.js +40 -0
- package/dist/external-tools/janus/from-vfs.d.ts +7 -0
- package/dist/external-tools/janus/from-vfs.js +47 -0
- package/dist/external-tools/janus/resolve.d.ts +28 -0
- package/dist/external-tools/janus/resolve.js +73 -0
- package/dist/external-tools/janus/types.d.ts +24 -0
- package/dist/external-tools/janus/types.js +18 -0
- package/dist/external-tools/jre/asset-names.d.ts +91 -0
- package/dist/external-tools/jre/asset-names.js +88 -0
- package/dist/external-tools/jre/detect-platform-arch.d.ts +8 -0
- package/dist/external-tools/jre/detect-platform-arch.js +52 -0
- package/dist/external-tools/jre/from-download.d.ts +62 -0
- package/dist/external-tools/jre/from-download.js +70 -0
- package/dist/external-tools/jre/from-java-home.d.ts +10 -0
- package/dist/external-tools/jre/from-java-home.js +57 -0
- package/dist/external-tools/jre/from-path.d.ts +9 -0
- package/dist/external-tools/jre/from-path.js +52 -0
- package/dist/external-tools/jre/from-vfs.d.ts +17 -0
- package/dist/external-tools/jre/from-vfs.js +64 -0
- package/dist/external-tools/jre/resolve.d.ts +40 -0
- package/dist/external-tools/jre/resolve.js +78 -0
- package/dist/external-tools/jre/types.d.ts +28 -0
- package/dist/external-tools/jre/types.js +18 -0
- package/dist/external-tools/manifest.d.ts +105 -0
- package/dist/external-tools/manifest.js +167 -0
- package/dist/external-tools/opengrep/asset-names.d.ts +44 -0
- package/dist/external-tools/opengrep/asset-names.js +78 -0
- package/dist/external-tools/opengrep/from-download.d.ts +17 -0
- package/dist/external-tools/opengrep/from-download.js +83 -0
- package/dist/external-tools/opengrep/from-path.d.ts +5 -0
- package/dist/external-tools/opengrep/from-path.js +40 -0
- package/dist/external-tools/opengrep/from-vfs.d.ts +8 -0
- package/dist/external-tools/opengrep/from-vfs.js +47 -0
- package/dist/external-tools/opengrep/resolve.d.ts +26 -0
- package/dist/external-tools/opengrep/resolve.js +73 -0
- package/dist/external-tools/opengrep/types.d.ts +24 -0
- package/dist/external-tools/opengrep/types.js +18 -0
- package/dist/external-tools/sbt/asset-names.d.ts +31 -0
- package/dist/external-tools/sbt/asset-names.js +33 -0
- package/dist/external-tools/sbt/from-download.d.ts +44 -0
- package/dist/external-tools/sbt/from-download.js +64 -0
- package/dist/external-tools/sbt/from-path.d.ts +8 -0
- package/dist/external-tools/sbt/from-path.js +41 -0
- package/dist/external-tools/sbt/from-vfs.d.ts +14 -0
- package/dist/external-tools/sbt/from-vfs.js +48 -0
- package/dist/external-tools/sbt/resolve.d.ts +31 -0
- package/dist/external-tools/sbt/resolve.js +73 -0
- package/dist/external-tools/sbt/types.d.ts +32 -0
- package/dist/external-tools/sbt/types.js +18 -0
- package/dist/external-tools/synp/asset-names.d.ts +14 -0
- package/dist/external-tools/synp/asset-names.js +32 -0
- package/dist/external-tools/synp/from-download.d.ts +18 -0
- package/dist/external-tools/synp/from-download.js +44 -0
- package/dist/external-tools/synp/from-path.d.ts +5 -0
- package/dist/external-tools/synp/from-path.js +40 -0
- package/dist/external-tools/synp/from-vfs.d.ts +7 -0
- package/dist/external-tools/synp/from-vfs.js +47 -0
- package/dist/external-tools/synp/resolve.d.ts +21 -0
- package/dist/external-tools/synp/resolve.js +72 -0
- package/dist/external-tools/synp/types.d.ts +19 -0
- package/dist/external-tools/synp/types.js +18 -0
- package/dist/external-tools/trivy/asset-names.d.ts +34 -0
- package/dist/external-tools/trivy/asset-names.js +68 -0
- package/dist/external-tools/trivy/from-download.d.ts +17 -0
- package/dist/external-tools/trivy/from-download.js +67 -0
- package/dist/external-tools/trivy/from-path.d.ts +5 -0
- package/dist/external-tools/trivy/from-path.js +40 -0
- package/dist/external-tools/trivy/from-vfs.d.ts +7 -0
- package/dist/external-tools/trivy/from-vfs.js +47 -0
- package/dist/external-tools/trivy/resolve.d.ts +26 -0
- package/dist/external-tools/trivy/resolve.js +73 -0
- package/dist/external-tools/trivy/types.d.ts +24 -0
- package/dist/external-tools/trivy/types.js +18 -0
- package/dist/external-tools/trufflehog/asset-names.d.ts +34 -0
- package/dist/external-tools/trufflehog/asset-names.js +72 -0
- package/dist/external-tools/trufflehog/from-download.d.ts +37 -0
- package/dist/external-tools/trufflehog/from-download.js +65 -0
- package/dist/external-tools/trufflehog/from-path.d.ts +7 -0
- package/dist/external-tools/trufflehog/from-path.js +40 -0
- package/dist/external-tools/trufflehog/from-vfs.d.ts +11 -0
- package/dist/external-tools/trufflehog/from-vfs.js +47 -0
- package/dist/external-tools/trufflehog/resolve.d.ts +30 -0
- package/dist/external-tools/trufflehog/resolve.js +73 -0
- package/dist/external-tools/trufflehog/types.d.ts +25 -0
- package/dist/external-tools/trufflehog/types.js +18 -0
- package/dist/external-tools/uv/asset-names.d.ts +36 -0
- package/dist/external-tools/uv/asset-names.js +80 -0
- package/dist/external-tools/uv/from-download.d.ts +17 -0
- package/dist/external-tools/uv/from-download.js +68 -0
- package/dist/external-tools/uv/from-path.d.ts +5 -0
- package/dist/external-tools/uv/from-path.js +40 -0
- package/dist/external-tools/uv/from-vfs.d.ts +7 -0
- package/dist/external-tools/uv/from-vfs.js +47 -0
- package/dist/external-tools/uv/resolve.d.ts +25 -0
- package/dist/external-tools/uv/resolve.js +73 -0
- package/dist/external-tools/uv/types.d.ts +24 -0
- package/dist/external-tools/uv/types.js +18 -0
- package/dist/fs/_internal.d.ts +22 -0
- package/dist/fs/_internal.js +48 -0
- package/dist/fs/encoding.d.ts +49 -0
- package/dist/fs/encoding.js +102 -0
- package/dist/fs/find-up.d.ts +58 -0
- package/dist/fs/find-up.js +152 -0
- package/dist/fs/inspect.d.ts +117 -0
- package/dist/fs/inspect.js +112 -0
- package/dist/fs/path-cache.d.ts +21 -0
- package/dist/fs/path-cache.js +35 -0
- package/dist/fs/read-dir.d.ts +66 -0
- package/dist/fs/read-dir.js +86 -0
- package/dist/fs/read-file.d.ts +150 -0
- package/dist/fs/read-file.js +131 -0
- package/dist/fs/read-json.d.ts +72 -0
- package/dist/fs/read-json.js +120 -0
- package/dist/fs/safe.d.ts +153 -0
- package/dist/fs/safe.js +182 -0
- package/dist/fs/types.d.ts +277 -0
- package/dist/fs/types.js +18 -0
- package/dist/fs/unique.d.ts +29 -0
- package/dist/fs/unique.js +51 -0
- package/dist/fs/validate.d.ts +40 -0
- package/dist/fs/validate.js +46 -0
- package/dist/fs/write-json.d.ts +78 -0
- package/dist/fs/write-json.js +83 -0
- package/dist/git/_internal.d.ts +105 -0
- package/dist/git/_internal.js +236 -0
- package/dist/git/changed.d.ts +145 -0
- package/dist/git/changed.js +83 -0
- package/dist/git/repo.d.ts +62 -0
- package/dist/git/repo.js +111 -0
- package/dist/git/staged.d.ts +138 -0
- package/dist/git/staged.js +71 -0
- package/dist/git/types.d.ts +109 -0
- package/dist/git/types.js +18 -0
- package/dist/git/unstaged.d.ts +141 -0
- package/dist/git/unstaged.js +71 -0
- package/dist/github/constants.d.ts +18 -0
- package/dist/github/constants.js +36 -0
- package/dist/github/errors.d.ts +36 -0
- package/dist/github/errors.js +40 -0
- package/dist/github/fetch.d.ts +89 -0
- package/dist/github/fetch.js +87 -0
- package/dist/github/ghsa.d.ts +118 -0
- package/dist/github/ghsa.js +178 -0
- package/dist/github/refs-cache.d.ts +40 -0
- package/dist/github/refs-cache.js +49 -0
- package/dist/github/refs-graphql.d.ts +42 -0
- package/dist/github/refs-graphql.js +109 -0
- package/dist/github/refs-rest.d.ts +23 -0
- package/dist/github/refs-rest.js +104 -0
- package/dist/github/refs.d.ts +84 -0
- package/dist/github/refs.js +67 -0
- package/dist/github/token.d.ts +77 -0
- package/dist/github/token.js +55 -0
- package/dist/github/types.d.ts +277 -0
- package/dist/github/types.js +18 -0
- package/dist/globs/_internal.d.ts +46 -0
- package/dist/globs/_internal.js +96 -0
- package/dist/globs/defaults.d.ts +7 -0
- package/dist/globs/defaults.js +61 -0
- package/dist/globs/glob.d.ts +59 -0
- package/dist/globs/glob.js +84 -0
- package/dist/globs/matcher.d.ts +46 -0
- package/dist/globs/matcher.js +99 -0
- package/dist/globs/stream.d.ts +18 -0
- package/dist/globs/stream.js +58 -0
- package/dist/globs/types.d.ts +35 -0
- package/dist/globs/types.js +18 -0
- package/dist/http-request/_internal.d.ts +18 -0
- package/dist/http-request/_internal.js +39 -0
- package/dist/http-request/checksums.d.ts +69 -0
- package/dist/http-request/checksums.js +72 -0
- package/dist/http-request/convenience.d.ts +104 -0
- package/dist/http-request/convenience.js +96 -0
- package/dist/http-request/download-types.d.ts +224 -0
- package/dist/http-request/download-types.js +18 -0
- package/dist/http-request/download.d.ts +71 -0
- package/dist/http-request/download.js +201 -0
- package/dist/http-request/errors.d.ts +23 -0
- package/dist/http-request/errors.js +50 -0
- package/dist/http-request/headers.d.ts +57 -0
- package/dist/http-request/headers.js +86 -0
- package/dist/http-request/request-attempt.d.ts +21 -0
- package/dist/http-request/request-attempt.js +284 -0
- package/dist/http-request/request-types.d.ts +238 -0
- package/dist/http-request/request-types.js +18 -0
- package/dist/http-request/request.d.ts +59 -0
- package/dist/http-request/request.js +106 -0
- package/dist/http-request/response-reader.d.ts +25 -0
- package/dist/http-request/response-reader.js +54 -0
- package/dist/http-request/response-types.d.ts +123 -0
- package/dist/http-request/response-types.js +40 -0
- package/dist/http-request/user-agent.d.ts +55 -0
- package/dist/http-request/user-agent.js +61 -0
- package/dist/{dlx/integrity.d.ts → integrity.d.ts} +36 -30
- package/dist/{dlx/integrity.js → integrity.js} +25 -19
- package/dist/ipc/_internal.d.ts +25 -0
- package/dist/ipc/_internal.js +50 -0
- package/dist/ipc/directory.d.ts +18 -0
- package/dist/ipc/directory.js +66 -0
- package/dist/ipc/paths.d.ts +37 -0
- package/dist/ipc/paths.js +48 -0
- package/dist/ipc/types.d.ts +22 -0
- package/dist/ipc/types.js +18 -0
- package/dist/ipc/write.d.ts +39 -0
- package/dist/ipc/write.js +77 -0
- package/dist/ipc-cli/get.d.ts +21 -0
- package/dist/{ipc-cli.js → ipc-cli/get.js} +5 -5
- package/dist/ipc-cli/types.d.ts +14 -0
- package/dist/ipc-cli/types.js +18 -0
- package/dist/json/edit.d.ts +22 -8
- package/dist/json/edit.js +85 -96
- package/dist/json/format.d.ts +100 -86
- package/dist/json/format.js +4 -3
- package/dist/json/parse.d.ts +113 -88
- package/dist/json/parse.js +30 -24
- package/dist/json/types.d.ts +133 -117
- package/dist/links/link.d.ts +65 -0
- package/dist/{links.js → links/link.js} +10 -10
- package/dist/links/types.d.ts +19 -0
- package/dist/links/types.js +18 -0
- package/dist/logger/_internal.d.ts +82 -0
- package/dist/logger/_internal.js +80 -0
- package/dist/logger/colors.d.ts +18 -0
- package/dist/logger/colors.js +54 -0
- package/dist/logger/console.d.ts +33 -0
- package/dist/logger/console.js +119 -0
- package/dist/logger/logger.d.ts +405 -0
- package/dist/logger/logger.js +854 -0
- package/dist/logger/symbols-builder.d.ts +29 -0
- package/dist/logger/symbols-builder.js +61 -0
- package/dist/logger/symbols.d.ts +61 -0
- package/dist/logger/symbols.js +129 -0
- package/dist/logger/types.d.ts +88 -0
- package/dist/logger/types.js +18 -0
- package/dist/memo/_internal.d.ts +16 -0
- package/dist/memo/_internal.js +53 -0
- package/dist/memo/async.d.ts +32 -0
- package/dist/memo/async.js +120 -0
- package/dist/memo/clear.d.ts +15 -0
- package/dist/memo/clear.js +37 -0
- package/dist/memo/decorator.d.ts +29 -0
- package/dist/memo/decorator.js +40 -0
- package/dist/memo/memoize.d.ts +33 -0
- package/dist/memo/memoize.js +91 -0
- package/dist/memo/once.d.ts +25 -0
- package/dist/memo/once.js +44 -0
- package/dist/memo/types.d.ts +43 -0
- package/dist/memo/types.js +18 -0
- package/dist/memo/weak.d.ts +26 -0
- package/dist/memo/weak.js +44 -0
- package/dist/node/async-hooks.d.ts +2 -2
- package/dist/node/child-process.d.ts +5 -7
- package/dist/node/crypto.d.ts +2 -2
- package/dist/node/events.d.ts +2 -2
- package/dist/node/fs-promises.d.ts +2 -2
- package/dist/node/fs.d.ts +6 -10
- package/dist/node/http.d.ts +2 -2
- package/dist/node/https.d.ts +2 -2
- package/dist/node/module.d.ts +7 -0
- package/dist/node/module.js +41 -0
- package/dist/node/os.d.ts +2 -2
- package/dist/node/path.d.ts +2 -2
- package/dist/node/timers-promises.d.ts +2 -2
- package/dist/node/url.d.ts +2 -2
- package/dist/node/util.d.ts +2 -2
- package/dist/objects/getters.d.ts +116 -0
- package/dist/objects/getters.js +137 -0
- package/dist/objects/inspect.d.ts +67 -0
- package/dist/objects/inspect.js +59 -0
- package/dist/objects/mutate.d.ts +72 -0
- package/dist/objects/mutate.js +81 -0
- package/dist/objects/predicates.d.ts +96 -0
- package/dist/objects/predicates.js +68 -0
- package/dist/objects/sort.d.ts +88 -0
- package/dist/objects/sort.js +85 -0
- package/dist/objects/types.d.ts +68 -0
- package/dist/objects/types.js +18 -0
- package/dist/packages/edit-class.d.ts +39 -0
- package/dist/packages/edit-class.js +269 -0
- package/dist/packages/edit.d.ts +60 -61
- package/dist/packages/edit.js +21 -286
- package/dist/packages/exports.d.ts +30 -28
- package/dist/packages/exports.js +38 -34
- package/dist/packages/isolation.d.ts +16 -7
- package/dist/packages/isolation.js +50 -57
- package/dist/packages/licenses.d.ts +49 -45
- package/dist/packages/licenses.js +13 -18
- package/dist/packages/manifest.d.ts +14 -14
- package/dist/packages/manifest.js +16 -15
- package/dist/packages/normalize.d.ts +17 -16
- package/dist/packages/normalize.js +20 -17
- package/dist/packages/operations.d.ts +49 -36
- package/dist/packages/operations.js +30 -15
- package/dist/packages/provenance.d.ts +22 -9
- package/dist/packages/provenance.js +76 -66
- package/dist/packages/specs.d.ts +21 -21
- package/dist/packages/specs.js +7 -7
- package/dist/{packages.d.ts → packages/types.d.ts} +12 -20
- package/dist/packages/types.js +18 -0
- package/dist/packages/validation.d.ts +13 -13
- package/dist/packages/validation.js +2 -2
- package/dist/paths/_internal.d.ts +51 -0
- package/dist/paths/_internal.js +102 -0
- package/dist/paths/conversion.d.ts +82 -0
- package/dist/paths/conversion.js +74 -0
- package/dist/paths/dirnames.d.ts +1 -1
- package/dist/paths/exts.d.ts +1 -1
- package/dist/paths/filenames.d.ts +1 -1
- package/dist/paths/globs.d.ts +1 -1
- package/dist/paths/normalize.d.ts +30 -440
- package/dist/paths/normalize.js +49 -289
- package/dist/paths/packages.d.ts +7 -1
- package/dist/paths/packages.js +7 -12
- package/dist/paths/predicates.d.ts +129 -0
- package/dist/paths/predicates.js +121 -0
- package/dist/paths/resolve.d.ts +71 -0
- package/dist/paths/resolve.js +135 -0
- package/dist/paths/rewire.d.ts +37 -38
- package/dist/paths/rewire.js +3 -3
- package/dist/paths/socket.d.ts +146 -47
- package/dist/paths/socket.js +23 -25
- package/dist/perf/_internal.d.ts +10 -0
- package/dist/perf/_internal.js +30 -0
- package/dist/perf/enabled.d.ts +13 -0
- package/dist/perf/enabled.js +33 -0
- package/dist/perf/metrics.d.ts +51 -0
- package/dist/perf/metrics.js +74 -0
- package/dist/perf/report.d.ts +40 -0
- package/dist/perf/report.js +85 -0
- package/dist/perf/timer.d.ts +100 -0
- package/dist/perf/timer.js +137 -0
- package/dist/perf/types.d.ts +15 -0
- package/dist/perf/types.js +18 -0
- package/dist/pkg-ext/data.d.ts +8 -0
- package/dist/{package-extensions.js → pkg-ext/data.js} +4 -4
- package/dist/pkg-ext/types.d.ts +6 -0
- package/dist/pkg-ext/types.js +18 -0
- package/dist/primordials/array.d.ts +73 -0
- package/dist/primordials/array.js +220 -0
- package/dist/primordials/buffer.d.ts +17 -0
- package/dist/primordials/buffer.js +61 -0
- package/dist/primordials/date.d.ts +16 -0
- package/dist/primordials/date.js +56 -0
- package/dist/primordials/error.d.ts +19 -0
- package/dist/primordials/error.js +75 -0
- package/dist/primordials/function.d.ts +10 -0
- package/dist/primordials/function.js +42 -0
- package/dist/primordials/globals.d.ts +17 -0
- package/dist/primordials/globals.js +54 -0
- package/dist/primordials/json.d.ts +11 -0
- package/dist/primordials/json.js +33 -0
- package/dist/primordials/map-set.d.ts +35 -0
- package/dist/primordials/map-set.js +115 -0
- package/dist/primordials/math.d.ts +51 -0
- package/dist/primordials/math.js +161 -0
- package/dist/primordials/number.d.ts +25 -0
- package/dist/primordials/number.js +92 -0
- package/dist/primordials/object.d.ts +74 -0
- package/dist/primordials/object.js +142 -0
- package/dist/primordials/promise.d.ts +34 -0
- package/dist/primordials/promise.js +61 -0
- package/dist/primordials/reflect.d.ts +18 -0
- package/dist/primordials/reflect.js +66 -0
- package/dist/primordials/regexp.d.ts +14 -0
- package/dist/primordials/regexp.js +50 -0
- package/dist/primordials/string.d.ts +71 -0
- package/dist/primordials/string.js +174 -0
- package/dist/primordials/symbol.d.ts +28 -0
- package/dist/primordials/symbol.js +94 -0
- package/dist/primordials/uncurry.d.ts +18 -0
- package/dist/primordials/uncurry.js +65 -0
- package/dist/primordials/url.d.ts +13 -0
- package/dist/primordials/url.js +69 -0
- package/dist/process/_internal.d.ts +8 -0
- package/dist/process/_internal.js +33 -0
- package/dist/process/abort.d.ts +20 -0
- package/dist/{constants/process.js → process/abort.js} +3 -3
- package/dist/process/lock-instance.d.ts +19 -0
- package/dist/process/lock-instance.js +31 -0
- package/dist/process/lock-manager.d.ts +152 -0
- package/dist/{process-lock.js → process/lock-manager.js} +97 -105
- package/dist/process/lock-types.d.ts +43 -0
- package/dist/process/lock-types.js +18 -0
- package/dist/process/transient.d.ts +22 -0
- package/dist/{temporary-executor.js → process/transient.js} +8 -8
- package/dist/promise-queue/queue.d.ts +51 -0
- package/dist/{promise-queue.js → promise-queue/queue.js} +27 -22
- package/dist/promise-queue/types.d.ts +10 -0
- package/dist/promise-queue/types.js +18 -0
- package/dist/promises/_internal.d.ts +15 -0
- package/dist/promises/_internal.js +41 -0
- package/dist/promises/iterate.d.ts +190 -0
- package/dist/promises/iterate.js +111 -0
- package/dist/promises/options.d.ts +76 -0
- package/dist/promises/options.js +108 -0
- package/dist/promises/resolvers.d.ts +55 -0
- package/dist/promises/resolvers.js +49 -0
- package/dist/promises/retry.d.ts +105 -0
- package/dist/promises/retry.js +104 -0
- package/dist/promises/types.d.ts +190 -0
- package/dist/promises/types.js +18 -0
- package/dist/regexps/escape.d.ts +6 -0
- package/dist/regexps/escape.js +32 -0
- package/dist/regexps/hex.d.ts +7 -0
- package/dist/regexps/hex.js +38 -0
- package/dist/regexps/spec.d.ts +15 -0
- package/dist/{regexps.js → regexps/spec.js} +32 -36
- package/dist/releases/github-archives.d.ts +47 -36
- package/dist/releases/github-archives.js +21 -35
- package/dist/releases/github-asset-url.d.ts +72 -0
- package/dist/releases/github-asset-url.js +167 -0
- package/dist/releases/github-assets.d.ts +13 -11
- package/dist/releases/github-assets.js +2 -2
- package/dist/releases/github-auth.d.ts +9 -9
- package/dist/releases/github-downloads.d.ts +31 -26
- package/dist/releases/github-downloads.js +22 -34
- package/dist/releases/github-listing.d.ts +105 -0
- package/dist/releases/github-listing.js +171 -0
- package/dist/releases/github-types.d.ts +45 -19
- package/dist/releases/socket-btm.d.ts +149 -99
- package/dist/releases/socket-btm.js +14 -20
- package/dist/schema/parse.d.ts +14 -15
- package/dist/schema/parse.js +2 -2
- package/dist/schema/types.d.ts +49 -37
- package/dist/schema/validate.d.ts +42 -19
- package/dist/schema/validate.js +15 -6
- package/dist/sea/detect.d.ts +37 -0
- package/dist/sea/{util.js → detect.js} +6 -6
- package/dist/secrets/_internal.d.ts +57 -0
- package/dist/secrets/_internal.js +84 -0
- package/dist/secrets/find.d.ts +79 -0
- package/dist/secrets/find.js +84 -0
- package/dist/secrets/keychain.d.ts +138 -0
- package/dist/secrets/keychain.js +328 -0
- package/dist/secrets/linux.d.ts +20 -0
- package/dist/secrets/linux.js +151 -0
- package/dist/secrets/macos.d.ts +36 -0
- package/dist/secrets/macos.js +165 -0
- package/dist/secrets/rc.d.ts +139 -0
- package/dist/secrets/rc.js +196 -0
- package/dist/secrets/socket-api-token.d.ts +23 -0
- package/dist/secrets/socket-api-token.js +50 -0
- package/dist/secrets/types.d.ts +69 -0
- package/dist/secrets/types.js +18 -0
- package/dist/secrets/windows.d.ts +50 -0
- package/dist/secrets/windows.js +318 -0
- package/dist/shadow/skip.d.ts +25 -0
- package/dist/{shadow.js → shadow/skip.js} +4 -4
- package/dist/shadow/types.d.ts +8 -0
- package/dist/shadow/types.js +18 -0
- package/dist/signal-exit/_internal.d.ts +68 -0
- package/dist/signal-exit/_internal.js +127 -0
- package/dist/signal-exit/intercept.d.ts +8 -0
- package/dist/signal-exit/intercept.js +75 -0
- package/dist/signal-exit/lifecycle.d.ts +28 -0
- package/dist/signal-exit/lifecycle.js +109 -0
- package/dist/signal-exit/register.d.ts +20 -0
- package/dist/signal-exit/register.js +58 -0
- package/dist/signal-exit/signals.d.ts +16 -0
- package/dist/signal-exit/signals.js +34 -0
- package/dist/signal-exit/types.d.ts +21 -0
- package/dist/signal-exit/types.js +18 -0
- package/dist/smol/detect.d.ts +80 -0
- package/dist/smol/{util.js → detect.js} +16 -24
- package/dist/smol/http.d.ts +60 -0
- package/dist/smol/http.js +42 -0
- package/dist/smol/https.d.ts +59 -0
- package/dist/smol/https.js +42 -0
- package/dist/smol/manifest.d.ts +140 -0
- package/dist/smol/manifest.js +42 -0
- package/dist/smol/primordial.d.ts +16 -21
- package/dist/smol/primordial.js +7 -11
- package/dist/smol/purl.d.ts +84 -0
- package/dist/smol/purl.js +42 -0
- package/dist/smol/versions.d.ts +11 -14
- package/dist/smol/versions.js +7 -11
- package/dist/smol/vfs.d.ts +99 -0
- package/dist/smol/vfs.js +43 -0
- package/dist/sorts/_internal.d.ts +9 -0
- package/dist/sorts/_internal.js +47 -0
- package/dist/sorts/natural.d.ts +39 -0
- package/dist/{sorts.js → sorts/natural.js} +5 -42
- package/dist/sorts/semver.d.ts +15 -0
- package/dist/sorts/semver.js +46 -0
- package/dist/sorts/strings.d.ts +16 -0
- package/dist/sorts/strings.js +33 -0
- package/dist/sorts/types.d.ts +7 -0
- package/dist/sorts/types.js +18 -0
- package/dist/spawn/_internal.d.ts +24 -0
- package/dist/spawn/_internal.js +62 -0
- package/dist/spawn/errors.d.ts +45 -0
- package/dist/spawn/errors.js +118 -0
- package/dist/spawn/spawn.d.ts +134 -0
- package/dist/{spawn.js → spawn/spawn.js} +29 -147
- package/dist/spawn/stdio.d.ts +37 -0
- package/dist/spawn/stdio.js +38 -0
- package/dist/spawn/types.d.ts +325 -0
- package/dist/spawn/types.js +18 -0
- package/dist/spinner/format.d.ts +64 -0
- package/dist/spinner/format.js +83 -0
- package/dist/spinner/registry.d.ts +49 -0
- package/dist/spinner/registry.js +70 -0
- package/dist/spinner/spinner.d.ts +40 -0
- package/dist/spinner/spinner.js +802 -0
- package/dist/spinner/types.d.ts +368 -0
- package/dist/spinner/types.js +18 -0
- package/dist/spinner/with.d.ts +125 -0
- package/dist/spinner/with.js +144 -0
- package/dist/ssri/convert.d.ts +48 -0
- package/dist/{ssri.js → ssri/convert.js} +11 -34
- package/dist/ssri/parse.d.ts +27 -0
- package/dist/ssri/parse.js +40 -0
- package/dist/ssri/validate.d.ts +41 -0
- package/dist/ssri/validate.js +39 -0
- package/dist/stdio/{_stream.d.ts → _internal.d.ts} +10 -5
- package/dist/stdio/{_stream.js → _internal.js} +3 -3
- package/dist/stdio/clear.d.ts +98 -84
- package/dist/stdio/divider.d.ts +100 -78
- package/dist/stdio/divider.js +36 -14
- package/dist/stdio/footer.d.ts +75 -51
- package/dist/stdio/footer.js +28 -18
- package/dist/stdio/header.d.ts +61 -50
- package/dist/stdio/header.js +15 -13
- package/dist/stdio/progress.d.ts +67 -57
- package/dist/stdio/progress.js +55 -51
- package/dist/stdio/prompts.d.ts +147 -100
- package/dist/stdio/prompts.js +23 -15
- package/dist/stdio/stderr.d.ts +86 -84
- package/dist/stdio/stderr.js +6 -6
- package/dist/stdio/stdout.d.ts +77 -78
- package/dist/stdio/stdout.js +6 -6
- package/dist/streams/parallel.d.ts +40 -0
- package/dist/{streams.js → streams/parallel.js} +10 -27
- package/dist/streams/transform.d.ts +20 -0
- package/dist/streams/transform.js +48 -0
- package/dist/strings/format.d.ts +115 -0
- package/dist/strings/format.js +73 -0
- package/dist/strings/predicates.d.ts +52 -0
- package/dist/strings/predicates.js +39 -0
- package/dist/strings/search.d.ts +34 -0
- package/dist/strings/search.js +45 -0
- package/dist/strings/transform.d.ts +80 -0
- package/dist/strings/transform.js +79 -0
- package/dist/strings/types.d.ts +38 -0
- package/dist/strings/types.js +18 -0
- package/dist/strings/width.d.ts +42 -0
- package/dist/strings/width.js +95 -0
- package/dist/tables/bordered.d.ts +44 -0
- package/dist/tables/bordered.js +84 -0
- package/dist/tables/padding.d.ts +18 -0
- package/dist/tables/padding.js +51 -0
- package/dist/tables/simple.d.ts +36 -0
- package/dist/tables/simple.js +73 -0
- package/dist/tables/types.d.ts +15 -0
- package/dist/tables/types.js +18 -0
- package/dist/temporal/instant.d.ts +39 -0
- package/dist/temporal/instant.js +91 -0
- package/dist/temporal/now.d.ts +24 -0
- package/dist/temporal/now.js +34 -0
- package/dist/temporal/slots.d.ts +32 -0
- package/dist/temporal/slots.js +45 -0
- package/dist/temporal/system.d.ts +20 -0
- package/dist/temporal/system.js +42 -0
- package/dist/temporal/temporal.d.ts +22 -0
- package/dist/temporal/temporal.js +43 -0
- package/dist/themes/context.d.ts +65 -48
- package/dist/themes/context.js +6 -2
- package/dist/themes/resolve.d.ts +90 -0
- package/dist/themes/{utils.js → resolve.js} +6 -6
- package/dist/themes/themes.d.ts +14 -16
- package/dist/themes/types.d.ts +93 -35
- package/dist/ttl-cache/cache.d.ts +29 -0
- package/dist/{cache-with-ttl.js → ttl-cache/cache.js} +45 -37
- package/dist/ttl-cache/types.d.ts +109 -0
- package/dist/ttl-cache/types.js +18 -0
- package/dist/url/parse.d.ts +26 -0
- package/dist/url/parse.js +57 -0
- package/dist/url/predicates.d.ts +15 -0
- package/dist/url/predicates.js +34 -0
- package/dist/url/search-params.d.ts +71 -0
- package/dist/{url.js → url/search-params.js} +19 -54
- package/dist/url/types.d.ts +20 -0
- package/dist/url/types.js +18 -0
- package/dist/versions/_internal.d.ts +24 -0
- package/dist/versions/_internal.js +37 -0
- package/dist/versions/compare.d.ts +57 -0
- package/dist/versions/compare.js +65 -0
- package/dist/versions/modify.d.ts +28 -0
- package/dist/versions/modify.js +44 -0
- package/dist/versions/parse.d.ts +67 -0
- package/dist/versions/parse.js +77 -0
- package/dist/versions/range.d.ts +45 -0
- package/dist/versions/range.js +50 -0
- package/dist/versions/types.d.ts +13 -0
- package/dist/versions/types.js +18 -0
- package/dist/warnings/event-target.d.ts +31 -0
- package/dist/warnings/event-target.js +43 -0
- package/dist/warnings/suppress.d.ts +65 -0
- package/dist/{suppress-warnings.js → warnings/suppress.js} +16 -28
- package/dist/words/article.d.ts +14 -0
- package/dist/words/article.js +33 -0
- package/dist/words/capitalize.d.ts +15 -0
- package/dist/{words.js → words/capitalize.js} +5 -18
- package/dist/words/pluralize.d.ts +16 -0
- package/dist/words/pluralize.js +34 -0
- package/dist/words/types.d.ts +7 -0
- package/dist/words/types.js +18 -0
- package/package.json +1919 -247
- package/dist/abort.d.ts +0 -27
- package/dist/agent.d.ts +0 -196
- package/dist/agent.js +0 -287
- package/dist/ansi.d.ts +0 -39
- package/dist/archives.d.ts +0 -95
- package/dist/archives.js +0 -408
- package/dist/argv/flags.d.ts +0 -292
- package/dist/argv/flags.js +0 -297
- package/dist/arrays.d.ts +0 -168
- package/dist/bin.d.ts +0 -181
- package/dist/bin.js +0 -544
- package/dist/cacache.d.ts +0 -130
- package/dist/cacache.js +0 -156
- package/dist/cache-with-ttl.d.ts +0 -165
- package/dist/colors.d.ts +0 -49
- package/dist/compression.d.ts +0 -218
- package/dist/constants/process.d.ts +0 -20
- package/dist/crypto.d.ts +0 -36
- package/dist/debug.js +0 -337
- package/dist/env/helpers.d.ts +0 -66
- package/dist/env.d.ts +0 -182
- package/dist/env.js +0 -205
- package/dist/errors.d.ts +0 -100
- package/dist/fs.d.ts +0 -916
- package/dist/fs.js +0 -808
- package/dist/git.d.ts +0 -546
- package/dist/git.js +0 -409
- package/dist/github.d.ts +0 -526
- package/dist/github.js +0 -448
- package/dist/globs.d.ts +0 -119
- package/dist/globs.js +0 -282
- package/dist/http-request.d.ts +0 -951
- package/dist/http-request.js +0 -761
- package/dist/ipc-cli.d.ts +0 -28
- package/dist/ipc.d.ts +0 -76
- package/dist/ipc.js +0 -130
- package/dist/links.d.ts +0 -69
- package/dist/logger.d.ts +0 -993
- package/dist/logger.js +0 -1498
- package/dist/memoization.d.ts +0 -131
- package/dist/memoization.js +0 -243
- package/dist/objects.d.ts +0 -500
- package/dist/objects.js +0 -303
- package/dist/package-extensions.d.ts +0 -9
- package/dist/packages.js +0 -132
- package/dist/performance.d.ts +0 -181
- package/dist/performance.js +0 -233
- package/dist/primordials.d.ts +0 -420
- package/dist/primordials.js +0 -1116
- package/dist/process-lock.d.ts +0 -180
- package/dist/promise-queue.d.ts +0 -48
- package/dist/promises.d.ts +0 -506
- package/dist/promises.js +0 -292
- package/dist/regexps.d.ts +0 -6
- package/dist/releases/github-api.d.ts +0 -56
- package/dist/releases/github-api.js +0 -275
- package/dist/sea/util.d.ts +0 -43
- package/dist/shadow.d.ts +0 -28
- package/dist/signal-exit.d.ts +0 -50
- package/dist/signal-exit.js +0 -247
- package/dist/smol/util.d.ts +0 -87
- package/dist/sorts.d.ts +0 -59
- package/dist/spawn.d.ts +0 -454
- package/dist/spinner.d.ts +0 -444
- package/dist/spinner.js +0 -988
- package/dist/ssri.d.ts +0 -90
- package/dist/streams.d.ts +0 -45
- package/dist/strings.d.ts +0 -414
- package/dist/strings.js +0 -218
- package/dist/suppress-warnings.d.ts +0 -81
- package/dist/tables.d.ts +0 -73
- package/dist/tables.js +0 -133
- package/dist/temporary-executor.d.ts +0 -20
- package/dist/themes/utils.d.ts +0 -86
- package/dist/url.d.ts +0 -114
- package/dist/versions.d.ts +0 -207
- package/dist/versions.js +0 -181
- package/dist/words.d.ts +0 -39
package/dist/ai/spawn.js
ADDED
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Socket Lib - Built with esbuild */
|
|
3
|
+
"use strict";
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
21
|
+
var spawn_exports = {};
|
|
22
|
+
__export(spawn_exports, {
|
|
23
|
+
backoffFor: () => backoffFor,
|
|
24
|
+
buildArgs: () => buildArgs,
|
|
25
|
+
isOverloaded: () => isOverloaded,
|
|
26
|
+
pickAgent: () => pickAgent,
|
|
27
|
+
spawnAiAgent: () => spawnAiAgent
|
|
28
|
+
});
|
|
29
|
+
module.exports = __toCommonJS(spawn_exports);
|
|
30
|
+
var import_message = require("../errors/message");
|
|
31
|
+
var import_object = require("../primordials/object");
|
|
32
|
+
var import_spawn = require("../spawn/spawn");
|
|
33
|
+
var import_errors = require("../spawn/errors");
|
|
34
|
+
var import_discover = require("./discover");
|
|
35
|
+
const MAX_ATTEMPTS = 3;
|
|
36
|
+
const BACKOFF_BASE_MS = 5e3;
|
|
37
|
+
function backoffFor(attempt) {
|
|
38
|
+
return BACKOFF_BASE_MS * 3 ** (attempt - 1);
|
|
39
|
+
}
|
|
40
|
+
function buildArgs(agent, opts) {
|
|
41
|
+
const allAllowed = [...opts.tools, ...opts.allow ?? []];
|
|
42
|
+
switch (agent) {
|
|
43
|
+
case "claude": {
|
|
44
|
+
const args = [
|
|
45
|
+
"--print",
|
|
46
|
+
"--no-session-persistence",
|
|
47
|
+
"--permission-mode",
|
|
48
|
+
opts.permissionMode,
|
|
49
|
+
"--add-dir",
|
|
50
|
+
opts.cwd
|
|
51
|
+
];
|
|
52
|
+
for (const dir of opts.addDirs ?? []) {
|
|
53
|
+
args.push("--add-dir", dir);
|
|
54
|
+
}
|
|
55
|
+
if (opts.model) {
|
|
56
|
+
args.push("--model", opts.model);
|
|
57
|
+
}
|
|
58
|
+
if (allAllowed.length > 0) {
|
|
59
|
+
args.push("--allowedTools", ...allAllowed);
|
|
60
|
+
}
|
|
61
|
+
if (opts.disallow.length > 0) {
|
|
62
|
+
args.push("--disallowedTools", ...opts.disallow);
|
|
63
|
+
}
|
|
64
|
+
if (opts.extraArgs) {
|
|
65
|
+
args.push(...opts.extraArgs);
|
|
66
|
+
}
|
|
67
|
+
return args;
|
|
68
|
+
}
|
|
69
|
+
case "codex": {
|
|
70
|
+
const args = ["--print"];
|
|
71
|
+
if (opts.permissionMode === "plan") {
|
|
72
|
+
args.push("--read-only");
|
|
73
|
+
}
|
|
74
|
+
if (opts.model) {
|
|
75
|
+
args.push("--model", opts.model);
|
|
76
|
+
}
|
|
77
|
+
if (allAllowed.length > 0) {
|
|
78
|
+
args.push("--tools", allAllowed.join(","));
|
|
79
|
+
}
|
|
80
|
+
if (opts.disallow.length > 0) {
|
|
81
|
+
args.push("--disallow-tools", opts.disallow.join(","));
|
|
82
|
+
}
|
|
83
|
+
args.push("--cwd", opts.cwd);
|
|
84
|
+
if (opts.extraArgs) {
|
|
85
|
+
args.push(...opts.extraArgs);
|
|
86
|
+
}
|
|
87
|
+
return args;
|
|
88
|
+
}
|
|
89
|
+
case "gemini": {
|
|
90
|
+
const args = ["--no-interactive", "--workspace", opts.cwd];
|
|
91
|
+
if (opts.model) {
|
|
92
|
+
args.push("--model", opts.model);
|
|
93
|
+
}
|
|
94
|
+
if (allAllowed.length > 0) {
|
|
95
|
+
args.push("--allowed-tools", allAllowed.join(","));
|
|
96
|
+
}
|
|
97
|
+
if (opts.disallow.length > 0) {
|
|
98
|
+
args.push("--denied-tools", opts.disallow.join(","));
|
|
99
|
+
}
|
|
100
|
+
if (opts.permissionMode === "plan") {
|
|
101
|
+
args.push("--read-only");
|
|
102
|
+
}
|
|
103
|
+
if (opts.extraArgs) {
|
|
104
|
+
args.push(...opts.extraArgs);
|
|
105
|
+
}
|
|
106
|
+
return args;
|
|
107
|
+
}
|
|
108
|
+
case "opencode": {
|
|
109
|
+
const args = ["--print", "--cwd", opts.cwd];
|
|
110
|
+
if (opts.model) {
|
|
111
|
+
args.push("--model", opts.model);
|
|
112
|
+
}
|
|
113
|
+
if (allAllowed.length > 0) {
|
|
114
|
+
args.push("--tools", allAllowed.join(","));
|
|
115
|
+
}
|
|
116
|
+
if (opts.disallow.length > 0) {
|
|
117
|
+
args.push("--no-tools", opts.disallow.join(","));
|
|
118
|
+
}
|
|
119
|
+
if (opts.extraArgs) {
|
|
120
|
+
args.push(...opts.extraArgs);
|
|
121
|
+
}
|
|
122
|
+
return args;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
function isOverloaded(stdout, stderr) {
|
|
127
|
+
const re = /API Error: 529|Overloaded/i;
|
|
128
|
+
return re.test(stdout) || re.test(stderr);
|
|
129
|
+
}
|
|
130
|
+
async function pickAgent(requested, cwd) {
|
|
131
|
+
const discovered = await (0, import_discover.discoverAiAgents)({ repoRoot: cwd });
|
|
132
|
+
if (requested) {
|
|
133
|
+
if (!(requested in discovered)) {
|
|
134
|
+
throw new Error(
|
|
135
|
+
`spawnAiAgent: requested agent "${requested}" is not on PATH. Install the CLI or pass a different agent. Discovered: ${(0, import_object.ObjectKeys)(discovered).join(", ") || "(none)"}`
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
return requested;
|
|
139
|
+
}
|
|
140
|
+
if ("claude" in discovered) {
|
|
141
|
+
return "claude";
|
|
142
|
+
}
|
|
143
|
+
for (const candidate of ["codex", "opencode", "gemini"]) {
|
|
144
|
+
if (candidate in discovered) {
|
|
145
|
+
return candidate;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
throw new Error(
|
|
149
|
+
"spawnAiAgent: no AI agent CLI on PATH. Install one of: claude, codex, opencode, gemini."
|
|
150
|
+
);
|
|
151
|
+
}
|
|
152
|
+
async function spawnAiAgent(opts) {
|
|
153
|
+
const agent = await pickAgent(opts.agent, opts.cwd);
|
|
154
|
+
const args = buildArgs(agent, opts);
|
|
155
|
+
let stdout = "";
|
|
156
|
+
let stderr = "";
|
|
157
|
+
let exitCode = 0;
|
|
158
|
+
let attempts = 0;
|
|
159
|
+
const start = Date.now();
|
|
160
|
+
while (attempts < MAX_ATTEMPTS) {
|
|
161
|
+
attempts += 1;
|
|
162
|
+
stdout = "";
|
|
163
|
+
stderr = "";
|
|
164
|
+
exitCode = 0;
|
|
165
|
+
try {
|
|
166
|
+
const child = (0, import_spawn.spawn)(agent, args, {
|
|
167
|
+
cwd: opts.cwd,
|
|
168
|
+
stdio: "pipe",
|
|
169
|
+
stdioString: true,
|
|
170
|
+
timeout: opts.timeoutMs
|
|
171
|
+
});
|
|
172
|
+
child.stdin?.end(opts.prompt);
|
|
173
|
+
const result = await child;
|
|
174
|
+
stdout = String(result.stdout ?? "");
|
|
175
|
+
stderr = String(result.stderr ?? "");
|
|
176
|
+
exitCode = result.code ?? 0;
|
|
177
|
+
} catch (e) {
|
|
178
|
+
if ((0, import_errors.isSpawnError)(e)) {
|
|
179
|
+
stdout = String(e.stdout ?? "");
|
|
180
|
+
stderr = String(e.stderr ?? "");
|
|
181
|
+
exitCode = e.code ?? 1;
|
|
182
|
+
} else {
|
|
183
|
+
stderr = (0, import_message.errorMessage)(e);
|
|
184
|
+
exitCode = 1;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
if (!isOverloaded(stdout, stderr) || attempts >= MAX_ATTEMPTS) {
|
|
188
|
+
break;
|
|
189
|
+
}
|
|
190
|
+
await new Promise((resolve) => setTimeout(resolve, backoffFor(attempts)));
|
|
191
|
+
}
|
|
192
|
+
return {
|
|
193
|
+
attempts,
|
|
194
|
+
durationMs: Date.now() - start,
|
|
195
|
+
exitCode,
|
|
196
|
+
stderr,
|
|
197
|
+
stdout
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
201
|
+
0 && (module.exports = {
|
|
202
|
+
backoffFor,
|
|
203
|
+
buildArgs,
|
|
204
|
+
isOverloaded,
|
|
205
|
+
pickAgent,
|
|
206
|
+
spawnAiAgent
|
|
207
|
+
});
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Shared types for the locked-down AI agent surface. The fleet runs
|
|
3
|
+
* Claude / Codex / OpenCode / Gemini through CLI subprocesses, never via SDK
|
|
4
|
+
* calls. These types model the cross- agent contract: a permission mode, a
|
|
5
|
+
* tool allowlist, a tool denylist, a prompt, a working directory. Per-agent
|
|
6
|
+
* flag translation lives in `spawn.ts` — callers pass the uniform
|
|
7
|
+
* `SpawnAiAgentOptions` and the helper produces the right CLI args for the
|
|
8
|
+
* chosen agent.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* The set of AI agents the helper can drive. Each must be installed as a CLI on
|
|
12
|
+
* PATH; discovery happens via `discoverAiAgents()`.
|
|
13
|
+
*/
|
|
14
|
+
export type AiAgentName = 'claude' | 'codex' | 'gemini' | 'opencode';
|
|
15
|
+
/**
|
|
16
|
+
* Permission mode passed to the agent's CLI. The fleet rule (CLAUDE.md
|
|
17
|
+
* "Programmatic Claude calls") requires every headless call to set one of these
|
|
18
|
+
* explicitly — never the agent's default.
|
|
19
|
+
*
|
|
20
|
+
* - `acceptEdits` — Edit/Write proceed without prompting. Required for fix-mode
|
|
21
|
+
* skills; `dontAsk` would DENY rather than auto-accept.
|
|
22
|
+
* - `dontAsk` — read-only / no-mutation use. AskUserQuestion calls are
|
|
23
|
+
* suppressed.
|
|
24
|
+
* - `plan` — research / proposal mode. The agent can read but cannot write or run
|
|
25
|
+
* tools that mutate state.
|
|
26
|
+
*/
|
|
27
|
+
export type PermissionMode = 'acceptEdits' | 'dontAsk' | 'plan';
|
|
28
|
+
/**
|
|
29
|
+
* Result of an agent spawn. Consumers should inspect `exitCode` before using
|
|
30
|
+
* `stdout` — non-zero usually means the agent's CLI itself rejected, not just
|
|
31
|
+
* that the prompt failed.
|
|
32
|
+
*/
|
|
33
|
+
export interface AgentSpawnResult {
|
|
34
|
+
readonly attempts: number;
|
|
35
|
+
readonly durationMs: number;
|
|
36
|
+
readonly exitCode: number;
|
|
37
|
+
readonly stderr: string;
|
|
38
|
+
readonly stdout: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Inputs to a single agent spawn.
|
|
42
|
+
*
|
|
43
|
+
* Required: `prompt`, `cwd`, `tools`, `disallow`, `permissionMode`.
|
|
44
|
+
*
|
|
45
|
+
* Pre-built profiles in `profiles.ts` cover the common shapes
|
|
46
|
+
* (READ_ONLY_PROFILE, EDIT_ONLY_PROFILE) — callers spread the profile and
|
|
47
|
+
* override per-call (model, timeout, addDirs).
|
|
48
|
+
*
|
|
49
|
+
* Why the lockdown fields are required (not defaulted to a permissive shape):
|
|
50
|
+
* the CLAUDE.md rule says "all four lockdown flags MUST be set on every spawn."
|
|
51
|
+
* Making them required at the type level is the type-system version of that
|
|
52
|
+
* rule.
|
|
53
|
+
*/
|
|
54
|
+
export interface SpawnAiAgentOptions {
|
|
55
|
+
/**
|
|
56
|
+
* Optional explicit agent. Defaults to claude when discovered.
|
|
57
|
+
*/
|
|
58
|
+
readonly agent?: AiAgentName;
|
|
59
|
+
/**
|
|
60
|
+
* Allow-list extras (Bash glob patterns, MCP tools, etc.).
|
|
61
|
+
*/
|
|
62
|
+
readonly allow?: readonly string[];
|
|
63
|
+
/**
|
|
64
|
+
* Extra dirs the agent can read (e.g. parent of cwd for monorepo).
|
|
65
|
+
*/
|
|
66
|
+
readonly addDirs?: readonly string[];
|
|
67
|
+
/**
|
|
68
|
+
* Tool denylist — required to enforce the lockdown.
|
|
69
|
+
*/
|
|
70
|
+
readonly disallow: readonly string[];
|
|
71
|
+
/**
|
|
72
|
+
* Override the agent's flag list (rare; for one-off advanced cases).
|
|
73
|
+
*/
|
|
74
|
+
readonly extraArgs?: readonly string[];
|
|
75
|
+
/**
|
|
76
|
+
* Model name override; agent default if absent.
|
|
77
|
+
*/
|
|
78
|
+
readonly model?: string;
|
|
79
|
+
/**
|
|
80
|
+
* Permission mode — see PermissionMode docstring.
|
|
81
|
+
*/
|
|
82
|
+
readonly permissionMode: PermissionMode;
|
|
83
|
+
/**
|
|
84
|
+
* The prompt sent on stdin.
|
|
85
|
+
*/
|
|
86
|
+
readonly prompt: string;
|
|
87
|
+
/**
|
|
88
|
+
* Repository / working directory for the agent.
|
|
89
|
+
*/
|
|
90
|
+
readonly cwd: string;
|
|
91
|
+
/**
|
|
92
|
+
* Per-call timeout (ms). Caller should set for predictable bounds.
|
|
93
|
+
*/
|
|
94
|
+
readonly timeoutMs?: number;
|
|
95
|
+
/**
|
|
96
|
+
* Tool allowlist. Required to enforce the lockdown.
|
|
97
|
+
*/
|
|
98
|
+
readonly tools: readonly string[];
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* The cwd-aware "is this binary on PATH?" snapshot. Each entry is the absolute
|
|
102
|
+
* path resolved by `which`; missing agents are absent from the map (not
|
|
103
|
+
* present-with-undefined).
|
|
104
|
+
*/
|
|
105
|
+
export type DiscoveredAgents = Readonly<Partial<Record<AiAgentName, string>>>;
|
|
106
|
+
/**
|
|
107
|
+
* Cleanup policy for `spawnAiAgentsInWorktrees`. Default 'always'.
|
|
108
|
+
*
|
|
109
|
+
* - `always` — remove the worktree after the per-item function returns,
|
|
110
|
+
* regardless of success/failure or whether changes were committed. Matches
|
|
111
|
+
* the "leave no trace" expectation.
|
|
112
|
+
* - `never` — never auto-remove. Caller (or human inspector) cleans up. Useful
|
|
113
|
+
* for debugging.
|
|
114
|
+
* - `on-empty` — remove only if the worktree had no changes (committed or
|
|
115
|
+
* staged). Preserves evidence on failure.
|
|
116
|
+
*/
|
|
117
|
+
export type WorktreeCleanup = 'always' | 'never' | 'on-empty';
|
package/dist/ai/types.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Socket Lib - Built with esbuild */
|
|
3
|
+
"use strict";
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
10
|
+
for (let key of __getOwnPropNames(from))
|
|
11
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
12
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
13
|
+
}
|
|
14
|
+
return to;
|
|
15
|
+
};
|
|
16
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
17
|
+
var types_exports = {};
|
|
18
|
+
module.exports = __toCommonJS(types_exports);
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file Run AI agents in parallel, each in its own git worktree, and merge
|
|
3
|
+
* results back to the base branch. The fleet's CLAUDE.md "Parallel Claude
|
|
4
|
+
* sessions" rule mandates worktree isolation when multiple agents touch the
|
|
5
|
+
* same checkout. This helper enforces that contract: each item gets a fresh
|
|
6
|
+
* worktree branched from the base, the per-item function runs inside it, then
|
|
7
|
+
* the helper either fast-forward-merges the worktree branch back into the
|
|
8
|
+
* base (when changes were committed) or removes the worktree silently (when
|
|
9
|
+
* no changes happened). Concurrency: caller-controlled with a default cap of
|
|
10
|
+
* 4. Per the "Programmatic Claude calls" CLAUDE.md rule, very high
|
|
11
|
+
* concurrency saturates the API rate limits; 4 is safe headroom for most
|
|
12
|
+
* accounts. The hard cap of 8 prevents accidental flag-finger disasters.
|
|
13
|
+
* Cleanup policy: see `WorktreeCleanup` in types.mts. Default 'always' —
|
|
14
|
+
* fail-or-pass, the worktree is removed.
|
|
15
|
+
*/
|
|
16
|
+
import type { WorktreeCleanup } from './types.mts';
|
|
17
|
+
export interface WorktreeRunOptions {
|
|
18
|
+
/**
|
|
19
|
+
* Base repo path (the primary checkout).
|
|
20
|
+
*/
|
|
21
|
+
readonly baseRepo: string;
|
|
22
|
+
/**
|
|
23
|
+
* Branch to merge results into. Default: current branch of baseRepo.
|
|
24
|
+
*/
|
|
25
|
+
readonly branch?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Cleanup policy. Default 'always'.
|
|
28
|
+
*/
|
|
29
|
+
readonly cleanup?: WorktreeCleanup;
|
|
30
|
+
/**
|
|
31
|
+
* Parallel cap. Default 4, max 8.
|
|
32
|
+
*/
|
|
33
|
+
readonly concurrency?: number;
|
|
34
|
+
/**
|
|
35
|
+
* Prefix for worktree branch + dir names. Default 'agent-task'.
|
|
36
|
+
*/
|
|
37
|
+
readonly namePrefix?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Where worktrees live on disk. Default: `${tmpdir}/${prefix}-<n>`.
|
|
40
|
+
*/
|
|
41
|
+
readonly worktreeRoot?: string;
|
|
42
|
+
}
|
|
43
|
+
export interface WorktreeRunContext {
|
|
44
|
+
/**
|
|
45
|
+
* Worktree dir on disk.
|
|
46
|
+
*/
|
|
47
|
+
readonly cwd: string;
|
|
48
|
+
/**
|
|
49
|
+
* Branch name created for this worktree.
|
|
50
|
+
*/
|
|
51
|
+
readonly branch: string;
|
|
52
|
+
/**
|
|
53
|
+
* 0-indexed item position.
|
|
54
|
+
*/
|
|
55
|
+
readonly index: number;
|
|
56
|
+
}
|
|
57
|
+
export interface WorktreeRunSettled<T> {
|
|
58
|
+
readonly cleanup: 'removed' | 'kept';
|
|
59
|
+
readonly error?: unknown;
|
|
60
|
+
readonly merged: boolean;
|
|
61
|
+
readonly status: 'fulfilled' | 'rejected';
|
|
62
|
+
readonly value?: T | undefined;
|
|
63
|
+
readonly worktreePath: string;
|
|
64
|
+
}
|
|
65
|
+
export declare function currentBranch(repo: string): string;
|
|
66
|
+
export declare function git(cwd: string, ...args: string[]): string;
|
|
67
|
+
export declare function hasCommittedChanges(worktree: string, baseBranch: string): boolean;
|
|
68
|
+
export declare function hasStagedOrUnstaged(worktree: string): boolean;
|
|
69
|
+
export declare function runOne<I, T>(item: I, index: number, worktreeBranch: string, worktreePath: string, baseRepo: string, branch: string, cleanup: WorktreeCleanup, fn: (item: I, ctx: WorktreeRunContext) => Promise<T>): Promise<WorktreeRunSettled<T>>;
|
|
70
|
+
/**
|
|
71
|
+
* Run `fn` for each item in parallel, each invocation isolated in its own git
|
|
72
|
+
* worktree. Results are merged back into the base branch with `git merge
|
|
73
|
+
* --ff-only`; non-FF merges are reported as failures and the worktree is
|
|
74
|
+
* preserved (regardless of cleanup policy).
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* ;```ts
|
|
78
|
+
* import { spawnAiAgentsInWorktrees } from '@socketsecurity/lib/ai/worktree'
|
|
79
|
+
* import { spawnAiAgent } from '@socketsecurity/lib/ai/spawn'
|
|
80
|
+
* import { EDIT_ONLY_PROFILE } from '@socketsecurity/lib/ai/profiles'
|
|
81
|
+
*
|
|
82
|
+
* const repos = ['socket-addon', 'socket-btm', 'socket-lib']
|
|
83
|
+
* const settled = await spawnAiAgentsInWorktrees(
|
|
84
|
+
* repos,
|
|
85
|
+
* async ({ cwd }) => {
|
|
86
|
+
* return await spawnAiAgent({
|
|
87
|
+
* ...EDIT_ONLY_PROFILE,
|
|
88
|
+
* prompt: 'Run the cleanup task',
|
|
89
|
+
* cwd,
|
|
90
|
+
* })
|
|
91
|
+
* },
|
|
92
|
+
* {
|
|
93
|
+
* baseRepo: '/Users/<user>/projects/socket-wheelhouse',
|
|
94
|
+
* concurrency: 3,
|
|
95
|
+
* cleanup: 'on-empty',
|
|
96
|
+
* },
|
|
97
|
+
* )
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
export declare function spawnAiAgentsInWorktrees<I, T>(items: readonly I[], fn: (item: I, ctx: WorktreeRunContext) => Promise<T>, options: WorktreeRunOptions): Promise<ReadonlyArray<WorktreeRunSettled<T>>>;
|
|
101
|
+
export declare function tryGit(cwd: string, ...args: string[]): {
|
|
102
|
+
ok: boolean;
|
|
103
|
+
output: string;
|
|
104
|
+
};
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Socket Lib - Built with esbuild */
|
|
3
|
+
"use strict";
|
|
4
|
+
var __create = Object.create;
|
|
5
|
+
var __defProp = Object.defineProperty;
|
|
6
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
8
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __export = (target, all) => {
|
|
11
|
+
for (var name in all)
|
|
12
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
13
|
+
};
|
|
14
|
+
var __copyProps = (to, from, except, desc) => {
|
|
15
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
16
|
+
for (let key of __getOwnPropNames(from))
|
|
17
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
18
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
23
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
24
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
25
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
26
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
27
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
28
|
+
mod
|
|
29
|
+
));
|
|
30
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
31
|
+
var worktree_exports = {};
|
|
32
|
+
__export(worktree_exports, {
|
|
33
|
+
currentBranch: () => currentBranch,
|
|
34
|
+
git: () => git,
|
|
35
|
+
hasCommittedChanges: () => hasCommittedChanges,
|
|
36
|
+
hasStagedOrUnstaged: () => hasStagedOrUnstaged,
|
|
37
|
+
runOne: () => runOne,
|
|
38
|
+
spawnAiAgentsInWorktrees: () => spawnAiAgentsInWorktrees,
|
|
39
|
+
tryGit: () => tryGit
|
|
40
|
+
});
|
|
41
|
+
module.exports = __toCommonJS(worktree_exports);
|
|
42
|
+
var import_node_fs = require("node:fs");
|
|
43
|
+
var import_node_path = __toESM(require("node:path"), 1);
|
|
44
|
+
var import_message = require("../errors/message");
|
|
45
|
+
var import_spawn = require("../spawn/spawn");
|
|
46
|
+
var import_errors = require("../spawn/errors");
|
|
47
|
+
const DEFAULT_CONCURRENCY = 4;
|
|
48
|
+
const MAX_CONCURRENCY = 8;
|
|
49
|
+
function currentBranch(repo) {
|
|
50
|
+
return git(repo, "symbolic-ref", "--short", "HEAD");
|
|
51
|
+
}
|
|
52
|
+
function git(cwd, ...args) {
|
|
53
|
+
const result = (0, import_spawn.spawnSync)("git", args, {
|
|
54
|
+
cwd,
|
|
55
|
+
stdio: "pipe",
|
|
56
|
+
stdioString: true
|
|
57
|
+
});
|
|
58
|
+
return String(result.stdout ?? "").trim();
|
|
59
|
+
}
|
|
60
|
+
function hasCommittedChanges(worktree, baseBranch) {
|
|
61
|
+
const log = tryGit(worktree, "log", "--oneline", `${baseBranch}..HEAD`);
|
|
62
|
+
if (!log.ok) {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
return log.output.trim().length > 0;
|
|
66
|
+
}
|
|
67
|
+
function hasStagedOrUnstaged(worktree) {
|
|
68
|
+
const status = tryGit(worktree, "status", "--porcelain");
|
|
69
|
+
return status.ok && status.output.trim().length > 0;
|
|
70
|
+
}
|
|
71
|
+
async function runOne(item, index, worktreeBranch, worktreePath, baseRepo, branch, cleanup, fn) {
|
|
72
|
+
const add = tryGit(
|
|
73
|
+
baseRepo,
|
|
74
|
+
"worktree",
|
|
75
|
+
"add",
|
|
76
|
+
"-b",
|
|
77
|
+
worktreeBranch,
|
|
78
|
+
worktreePath,
|
|
79
|
+
branch
|
|
80
|
+
);
|
|
81
|
+
if (!add.ok) {
|
|
82
|
+
return {
|
|
83
|
+
cleanup: "kept",
|
|
84
|
+
error: new Error(`git worktree add failed: ${add.output}`),
|
|
85
|
+
merged: false,
|
|
86
|
+
status: "rejected",
|
|
87
|
+
worktreePath
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
let value;
|
|
91
|
+
let error;
|
|
92
|
+
try {
|
|
93
|
+
value = await fn(item, { branch: worktreeBranch, cwd: worktreePath, index });
|
|
94
|
+
} catch (e) {
|
|
95
|
+
error = e;
|
|
96
|
+
}
|
|
97
|
+
const hasCommitted = hasCommittedChanges(worktreePath, branch);
|
|
98
|
+
const hasUncommitted = hasStagedOrUnstaged(worktreePath);
|
|
99
|
+
let merged = false;
|
|
100
|
+
if (error === void 0 && hasCommitted) {
|
|
101
|
+
const merge = tryGit(baseRepo, "merge", "--ff-only", worktreeBranch);
|
|
102
|
+
if (merge.ok) {
|
|
103
|
+
merged = true;
|
|
104
|
+
} else {
|
|
105
|
+
error = new Error(`git merge --ff-only failed: ${merge.output}`);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
let didCleanup = "kept";
|
|
109
|
+
const shouldCleanup = error === void 0 && (cleanup === "always" || cleanup === "on-empty" && !hasCommitted && !hasUncommitted);
|
|
110
|
+
if (shouldCleanup) {
|
|
111
|
+
const remove = tryGit(baseRepo, "worktree", "remove", worktreePath);
|
|
112
|
+
if (remove.ok) {
|
|
113
|
+
didCleanup = "removed";
|
|
114
|
+
tryGit(baseRepo, "branch", "-D", worktreeBranch);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (error !== void 0) {
|
|
118
|
+
return {
|
|
119
|
+
cleanup: didCleanup,
|
|
120
|
+
error,
|
|
121
|
+
merged,
|
|
122
|
+
status: "rejected",
|
|
123
|
+
worktreePath
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
return {
|
|
127
|
+
cleanup: didCleanup,
|
|
128
|
+
merged,
|
|
129
|
+
status: "fulfilled",
|
|
130
|
+
value,
|
|
131
|
+
worktreePath
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
async function spawnAiAgentsInWorktrees(items, fn, options) {
|
|
135
|
+
const cleanup = options.cleanup ?? "always";
|
|
136
|
+
const namePrefix = options.namePrefix ?? "agent-task";
|
|
137
|
+
const concurrency = Math.max(
|
|
138
|
+
1,
|
|
139
|
+
Math.min(options.concurrency ?? DEFAULT_CONCURRENCY, MAX_CONCURRENCY)
|
|
140
|
+
);
|
|
141
|
+
const baseRepo = options.baseRepo;
|
|
142
|
+
if (!(0, import_node_fs.existsSync)(import_node_path.default.join(baseRepo, ".git"))) {
|
|
143
|
+
throw new Error(
|
|
144
|
+
`spawnAiAgentsInWorktrees: baseRepo is not a git checkout: ${baseRepo}`
|
|
145
|
+
);
|
|
146
|
+
}
|
|
147
|
+
const branch = options.branch ?? currentBranch(baseRepo);
|
|
148
|
+
const worktreeRoot = options.worktreeRoot ?? import_node_path.default.join(
|
|
149
|
+
process.platform === "win32" ? process.env["TEMP"] ?? "." : "/tmp",
|
|
150
|
+
`${namePrefix}-${Date.now()}`
|
|
151
|
+
);
|
|
152
|
+
const settled = [];
|
|
153
|
+
let cursor = 0;
|
|
154
|
+
async function worker() {
|
|
155
|
+
for (; ; ) {
|
|
156
|
+
const idx = cursor;
|
|
157
|
+
cursor += 1;
|
|
158
|
+
if (idx >= items.length) {
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
const item = items[idx];
|
|
162
|
+
const worktreeBranch = `${namePrefix}-${idx}-${Date.now()}`;
|
|
163
|
+
const worktreePath = import_node_path.default.join(worktreeRoot, `${namePrefix}-${idx}`);
|
|
164
|
+
const result = await runOne(
|
|
165
|
+
item,
|
|
166
|
+
idx,
|
|
167
|
+
worktreeBranch,
|
|
168
|
+
worktreePath,
|
|
169
|
+
baseRepo,
|
|
170
|
+
branch,
|
|
171
|
+
cleanup,
|
|
172
|
+
fn
|
|
173
|
+
);
|
|
174
|
+
settled[idx] = result;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
await Promise.all(Array.from({ length: concurrency }, () => worker()));
|
|
178
|
+
return settled;
|
|
179
|
+
}
|
|
180
|
+
function tryGit(cwd, ...args) {
|
|
181
|
+
try {
|
|
182
|
+
const output = git(cwd, ...args);
|
|
183
|
+
return { ok: true, output };
|
|
184
|
+
} catch (e) {
|
|
185
|
+
if ((0, import_errors.isSpawnError)(e)) {
|
|
186
|
+
return { ok: false, output: String(e.stderr ?? e.stdout ?? "") };
|
|
187
|
+
}
|
|
188
|
+
return { ok: false, output: (0, import_message.errorMessage)(e) };
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
192
|
+
0 && (module.exports = {
|
|
193
|
+
currentBranch,
|
|
194
|
+
git,
|
|
195
|
+
hasCommittedChanges,
|
|
196
|
+
hasStagedOrUnstaged,
|
|
197
|
+
runOne,
|
|
198
|
+
spawnAiAgentsInWorktrees,
|
|
199
|
+
tryGit
|
|
200
|
+
});
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file ANSI escape code constants. Commonly used terminal formatting sequences
|
|
3
|
+
* for bold, dim, italic, reset, strikethrough, and underline.
|
|
4
|
+
*/
|
|
5
|
+
export declare const ANSI_BOLD = "\u001B[1m";
|
|
6
|
+
export declare const ANSI_DIM = "\u001B[2m";
|
|
7
|
+
export declare const ANSI_ITALIC = "\u001B[3m";
|
|
8
|
+
export declare const ANSI_RESET = "\u001B[0m";
|
|
9
|
+
export declare const ANSI_STRIKETHROUGH = "\u001B[9m";
|
|
10
|
+
export declare const ANSI_UNDERLINE = "\u001B[4m";
|