@stll/oxlint-config 1.3.1 → 1.4.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.
Files changed (65) hide show
  1. package/README.md +254 -17
  2. package/dist/cloud-setup-cli.cjs +18 -38
  3. package/dist/cloud-setup-cli.cjs.map +1 -1
  4. package/dist/cloud-setup-cli.mjs +21 -41
  5. package/dist/cloud-setup-cli.mjs.map +1 -1
  6. package/dist/consumer-compat-cli.cjs +50 -249
  7. package/dist/consumer-compat-cli.cjs.map +1 -1
  8. package/dist/consumer-compat-cli.mjs +6 -205
  9. package/dist/consumer-compat-cli.mjs.map +1 -1
  10. package/dist/consumer-node-support.cjs +497 -0
  11. package/dist/consumer-node-support.cjs.map +1 -0
  12. package/dist/consumer-node-support.mjs +381 -0
  13. package/dist/consumer-node-support.mjs.map +1 -0
  14. package/dist/dependabot-cli.cjs +67 -0
  15. package/dist/dependabot-cli.cjs.map +1 -0
  16. package/dist/dependabot-cli.d.cts +1 -0
  17. package/dist/dependabot-cli.d.mts +1 -0
  18. package/dist/dependabot-cli.mjs +67 -0
  19. package/dist/dependabot-cli.mjs.map +1 -0
  20. package/dist/dependabot.cjs +5 -0
  21. package/dist/dependabot.d.cts +108 -0
  22. package/dist/dependabot.d.mts +108 -0
  23. package/dist/dependabot.mjs +3 -0
  24. package/dist/generated-file.cjs +61 -0
  25. package/dist/generated-file.cjs.map +1 -0
  26. package/dist/generated-file.mjs +44 -0
  27. package/dist/generated-file.mjs.map +1 -0
  28. package/dist/publish-artifact-syntax.cjs +1309 -0
  29. package/dist/publish-artifact-syntax.cjs.map +1 -0
  30. package/dist/publish-artifact-syntax.mjs +1265 -0
  31. package/dist/publish-artifact-syntax.mjs.map +1 -0
  32. package/dist/publish-contract-cli.cjs +53 -12
  33. package/dist/publish-contract-cli.cjs.map +1 -1
  34. package/dist/publish-contract-cli.mjs +49 -8
  35. package/dist/publish-contract-cli.mjs.map +1 -1
  36. package/dist/toolchain-changed.cjs +5 -1
  37. package/dist/toolchain-changed.cjs.map +1 -1
  38. package/dist/toolchain-changed.mjs +6 -2
  39. package/dist/toolchain-changed.mjs.map +1 -1
  40. package/dist/toolchain-dependabot.cjs +455 -0
  41. package/dist/toolchain-dependabot.cjs.map +1 -0
  42. package/dist/toolchain-dependabot.mjs +423 -0
  43. package/dist/toolchain-dependabot.mjs.map +1 -0
  44. package/dist/toolchain-guard.cjs +1096 -424
  45. package/dist/toolchain-guard.cjs.map +1 -1
  46. package/dist/toolchain-guard.mjs +1085 -413
  47. package/dist/toolchain-guard.mjs.map +1 -1
  48. package/dist/toolchain-inputs.cjs +113 -21
  49. package/dist/toolchain-inputs.cjs.map +1 -1
  50. package/dist/toolchain-inputs.mjs +108 -22
  51. package/dist/toolchain-inputs.mjs.map +1 -1
  52. package/dist/toolchain-schema.cjs +0 -493
  53. package/dist/toolchain-schema.cjs.map +1 -1
  54. package/dist/toolchain-schema.mjs +3 -379
  55. package/dist/toolchain-schema.mjs.map +1 -1
  56. package/dist/typecheck-parity.cjs +1 -1
  57. package/dist/typecheck-probe-cli.cjs +1 -1
  58. package/dist/typecheck-probe-cli.cjs.map +1 -1
  59. package/dist/typecheck-probe-cli.mjs +1 -1
  60. package/dist/typecheck-probe-cli.mjs.map +1 -1
  61. package/package.json +13 -1
  62. package/dist/publish-contract.cjs +0 -431
  63. package/dist/publish-contract.cjs.map +0 -1
  64. package/dist/publish-contract.mjs +0 -396
  65. package/dist/publish-contract.mjs.map +0 -1
@@ -375,6 +375,21 @@ const cloudSetupArtifacts = {
375
375
  binaries: { "rustup-init": "rustup-init" }
376
376
  }
377
377
  },
378
+ gitleaks: {
379
+ version: "8.30.1",
380
+ amd64: {
381
+ url: "https://github.com/gitleaks/gitleaks/releases/download/v8.30.1/gitleaks_8.30.1_linux_x64.tar.gz",
382
+ sha256: "551f6fc83ea457d62a0d98237cbad105af8d557003051f41f3e7ca7b3f2470eb",
383
+ archive: "tar.gz",
384
+ binaries: { gitleaks: "gitleaks" }
385
+ },
386
+ arm64: {
387
+ url: "https://github.com/gitleaks/gitleaks/releases/download/v8.30.1/gitleaks_8.30.1_linux_arm64.tar.gz",
388
+ sha256: "e4a487ee7ccd7d3a7f7ec08657610aa3606637dab924210b3aee62570fb4b080",
389
+ archive: "tar.gz",
390
+ binaries: { gitleaks: "gitleaks" }
391
+ }
392
+ },
378
393
  "cargo-nextest": {
379
394
  version: "0.9.148",
380
395
  amd64: {
@@ -442,7 +457,8 @@ const cloudSetupArtifactVersions = {
442
457
  "rustup-init": [cloudSetupArtifacts["rustup-init"]],
443
458
  "cargo-nextest": [cloudSetupArtifacts["cargo-nextest"]],
444
459
  "wasm-bindgen-cli": wasmBindgenArtifactReleases,
445
- uv: [cloudSetupArtifacts.uv]
460
+ uv: [cloudSetupArtifacts.uv],
461
+ gitleaks: [cloudSetupArtifacts.gitleaks]
446
462
  };
447
463
  /** A new version requires an explicit, verified catalog entry; never build from source. */
448
464
  const getCloudSetupArtifact = (tool, version) => {
@@ -497,11 +513,20 @@ const parseRust = (input) => {
497
513
  if (!object(input) || Object.keys(input).some((key) => ![
498
514
  "toolchain",
499
515
  "components",
500
- "targets"
501
- ].includes(key))) throw new Error("cloud.rust accepts only toolchain, components and targets");
516
+ "targets",
517
+ "additionalToolchains"
518
+ ].includes(key))) throw new Error("cloud.rust accepts only toolchain, components, targets and additionalToolchains");
502
519
  const toolchain = input["toolchain"];
503
520
  if (toolchain !== void 0 && !exactPin(toolchain)) throw new Error("cloud.rust.toolchain must be an exact stable release");
521
+ const additional = input["additionalToolchains"];
522
+ if (additional !== void 0 && !Array.isArray(additional)) throw new Error("cloud.rust.additionalToolchains requires exact stable releases");
523
+ const additionalToolchains = additional === void 0 ? [] : Array.from(additional, (pin) => {
524
+ if (!exactPin(pin)) throw new Error("cloud.rust.additionalToolchains requires exact stable releases");
525
+ return pin;
526
+ });
527
+ if (new Set(additionalToolchains).size !== additionalToolchains.length) throw new Error("cloud.rust.additionalToolchains contains duplicates");
504
528
  return {
529
+ additionalToolchains,
505
530
  ...toolchain === void 0 ? {} : { toolchain },
506
531
  components: parseCloudRustNames(input["components"], "components"),
507
532
  targets: parseCloudRustNames(input["targets"], "targets")
@@ -835,6 +860,11 @@ const resolveCloudToolchains = ({ cloud, files, rust, rustExceptions }) => {
835
860
  if (channel !== rust && !rustExceptions.some(({ pin }) => pin === channel)) throw new Error(`cloud Rust must use shared Rust ${rust} or a recorded rustExceptions pin`);
836
861
  if (cloud.rust?.toolchain !== void 0 && cloud.rust.toolchain !== channel) throw new Error("cloud.rust.toolchain conflicts with root Rust toolchain");
837
862
  }
863
+ const additionalToolchains = cloud.rust?.additionalToolchains ?? [];
864
+ for (const pin of additionalToolchains) {
865
+ if (pin === channel) throw new Error("cloud.rust.additionalToolchains must not repeat the primary toolchain");
866
+ if (pin !== rust && !rustExceptions.some(({ pin: authorized }) => authorized === pin)) throw new Error(`cloud.rust.additionalToolchains ${pin} requires an authorized rustExceptions pin`);
867
+ }
838
868
  const components = [.../* @__PURE__ */ new Set([...parseCloudRustNames(declared?.["components"], "components"), ...cloud.rust?.components ?? []])].sort();
839
869
  const targets = [.../* @__PURE__ */ new Set([...parseCloudRustNames(declared?.["targets"], "targets"), ...cloud.rust?.targets ?? []])].sort();
840
870
  const resolveTool = (tool, version) => {
@@ -865,6 +895,7 @@ const resolveCloudToolchains = ({ cloud, files, rust, rustExceptions }) => {
865
895
  return {
866
896
  rust: rustEnabled && typeof channel === "string" ? {
867
897
  channel,
898
+ additionalToolchains: [...additionalToolchains].sort(),
868
899
  components,
869
900
  targets,
870
901
  installer: cloudSetupArtifacts["rustup-init"]
@@ -901,7 +932,7 @@ rust_run() {
901
932
  *) fail 'Invalid Rust execution mode' ;;
902
933
  esac
903
934
  }
904
- rust_ready() {
935
+ primary_rust_ready() {
905
936
  local directory
906
937
  for directory in "$RUSTUP_HOME" "$CARGO_HOME"; do
907
938
  [[ -d "$directory" && ! -L "$directory" && "$(stat -c '%u' "$directory")" == "$OUTPUT_UID" ]] || return 1
@@ -915,13 +946,19 @@ rust_ready() {
915
946
  @VERIFY_TARGETS@
916
947
  return 0
917
948
  }
949
+ rust_ready() {
950
+ local additional_version
951
+ primary_rust_ready || return 1
952
+ @VERIFY_ADDITIONAL_TOOLCHAINS@
953
+ return 0
954
+ }
918
955
  verify_rust() { rust_ready || fail 'Pinned Rust, components or targets are unavailable; run install'; }
919
956
  install_rust() (
920
957
  if ! command -v cc >/dev/null || ! command -v ld >/dev/null || [[ ! -f /usr/include/stdlib.h ]]; then
921
958
  apt_refresh_for build-essential
922
959
  apt_install build-essential
923
960
  fi
924
- local artifact_url artifact_sha
961
+ local artifact_url artifact_sha additional_version
925
962
  # Subshell scope retains scratch for EXIT cleanup after a failed command.
926
963
  scratch="$(mktemp -d)"
927
964
  trap 'rm -rf -- "$scratch"' EXIT
@@ -940,9 +977,10 @@ install_rust() (
940
977
  rust_run network "$scratch/rustup-init" -y --no-modify-path --default-toolchain none --profile minimal
941
978
  fi
942
979
  rust_run local "$CARGO_HOME/bin/rustup" set auto-self-update disable
943
- if ! rust_ready; then
980
+ if ! primary_rust_ready; then
944
981
  rust_run network "$CARGO_HOME/bin/rustup" toolchain install @RUST@ --profile minimal --no-self-update @RUST_ARGS@
945
982
  fi
983
+ @INSTALL_ADDITIONAL_TOOLCHAINS@
946
984
  rust_run local "$CARGO_HOME/bin/rustup" default @RUST@
947
985
  verify_rust
948
986
  for tool in rustup cargo rustc rustdoc @RUST_PROXIES@; do
@@ -953,7 +991,7 @@ install_rust() (
953
991
  fi
954
992
  done
955
993
  )
956
- `.replaceAll("@RUSTUP@", rust.installer.version).replaceAll("@RUST@", rust.channel).replace("@RUSTUP_ARTIFACT@", artifactSelection(rust.installer)).replace("@RUST_ARGS@", args).replace("@RUST_PROXIES@", Object.entries(cloudRustComponentBinaries).flatMap(([component, binaries]) => rust.components.includes(component) ? Array.from(binaries) : []).join(" ")).replace("@VERIFY_COMPONENTS@", rust.components.map((name) => `rust_run local "$CARGO_HOME/bin/rustup" component list --toolchain ${quote(rust.channel)} --installed | awk -v name=${quote(name)} -v host="$host" '$1 == name || $1 == name "-" host { found=1 } END { exit !found }' || return 1`).join("\n ")).replace("@VERIFY_TARGETS@", rust.targets.map((name) => `rust_run local "$CARGO_HOME/bin/rustup" target list --toolchain ${quote(rust.channel)} --installed | awk -v name=${quote(name)} '$1 == name { found=1 } END { exit !found }' || return 1`).join("\n "));
994
+ `.replace("@VERIFY_ADDITIONAL_TOOLCHAINS@", rust.additionalToolchains.map((pin) => `additional_version="$(rust_run local "$CARGO_HOME/bin/rustc" +${pin} --version)" || return 1\n [[ "$additional_version" == 'rustc ${pin} '* ]] || return 1`).join("\n ")).replace("@INSTALL_ADDITIONAL_TOOLCHAINS@", rust.additionalToolchains.map((pin) => `if ! additional_version="$(rust_run local "$CARGO_HOME/bin/rustc" +${pin} --version)" || [[ "$additional_version" != 'rustc ${pin} '* ]]; then\n rust_run network "$CARGO_HOME/bin/rustup" toolchain install ${pin} --profile minimal --no-self-update\n fi`).join("\n ")).replaceAll("@RUSTUP@", rust.installer.version).replaceAll("@RUST@", rust.channel).replace("@RUSTUP_ARTIFACT@", artifactSelection(rust.installer)).replace("@RUST_ARGS@", args).replace("@RUST_PROXIES@", Object.entries(cloudRustComponentBinaries).flatMap(([component, binaries]) => rust.components.includes(component) ? Array.from(binaries) : []).join(" ")).replace("@VERIFY_COMPONENTS@", rust.components.map((name) => `rust_run local "$CARGO_HOME/bin/rustup" component list --toolchain ${quote(rust.channel)} --installed | awk -v name=${quote(name)} -v host="$host" '$1 == name || $1 == name "-" host { found=1 } END { exit !found }' || return 1`).join("\n ")).replace("@VERIFY_TARGETS@", rust.targets.map((name) => `rust_run local "$CARGO_HOME/bin/rustup" target list --toolchain ${quote(rust.channel)} --installed | awk -v name=${quote(name)} '$1 == name { found=1 } END { exit !found }' || return 1`).join("\n "));
957
995
  };
958
996
  const packageToolInstall = ({ tool, release }) => {
959
997
  const name = tool.replaceAll("-", "_");
@@ -976,7 +1014,7 @@ install_${name}() {
976
1014
  const artifactToolInstall = ({ tool, release }) => {
977
1015
  const directory = `/opt/stll-cloud/tools/${tool}/${release.version}`;
978
1016
  const command = tool === "wasm-bindgen-cli" ? "wasm-bindgen" : tool;
979
- const marker = `${tool === "cargo-nextest" ? "cargo-nextest" : command} ${release.version}`;
1017
+ const marker = `${tool === "gitleaks" ? "gitleaks version" : command} ${release.version}`;
980
1018
  return {
981
1019
  name: tool.replaceAll("-", "_"),
982
1020
  text: `verify_${tool.replaceAll("-", "_")}() {
@@ -1113,19 +1151,35 @@ esac
1113
1151
 
1114
1152
  @NETWORK@
1115
1153
 
1154
+ node_ready() {
1155
+ local node_version npm_version npx_version
1156
+ [[ -x "$NODE_DIR/bin/node" && -x "$NODE_DIR/bin/npm" && -x "$NODE_DIR/bin/npx" ]] || return 1
1157
+ node_version="$("$NODE_DIR/bin/node" --version)" || return 1
1158
+ [[ "$node_version" == "v$NODE_VERSION" ]] || return 1
1159
+ npm_version="$("$NODE_DIR/bin/npm" --version)" || return 1
1160
+ [[ "$npm_version" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] || return 1
1161
+ npx_version="$("$NODE_DIR/bin/npx" --version)" || return 1
1162
+ [[ "$npx_version" == "$npm_version" ]] || return 1
1163
+ }
1116
1164
  runtime_ready() {
1117
- [[ -x "$NODE_DIR/bin/node" && "$($NODE_DIR/bin/node --version)" == "v$NODE_VERSION" ]] || fail 'Pinned Node is unavailable; run install'
1165
+ node_ready || fail 'Pinned Node, npm or npx is unavailable; run install'
1118
1166
  [[ -x "$BUN_DIR/bun" && "$($BUN_DIR/bun --version)" == "$BUN_VERSION" ]] || fail 'Pinned Bun is unavailable; run install'
1119
1167
  }
1120
- install_runtimes() {
1168
+ install_runtimes() (
1169
+ if [[ ! -s /etc/ssl/certs/ca-certificates.crt ]]; then
1170
+ command -v update-ca-certificates >/dev/null || fail 'System CA certificate bundle is missing; restore ca-certificates in the base image offline before install'
1171
+ update-ca-certificates || fail 'System CA certificate bundle could not be repaired offline; restore ca-certificates in the base image before install'
1172
+ fi
1173
+ [[ -s /etc/ssl/certs/ca-certificates.crt ]] || fail 'System CA certificate bundle is unavailable after offline repair; restore ca-certificates in the base image before install'
1121
1174
  if ! command -v curl >/dev/null || ! command -v unzip >/dev/null || ! command -v xz >/dev/null || ! command -v openssl >/dev/null || ! command -v gpg >/dev/null || ! ldconfig -p | awk '$1 == "libatomic.so.1" { found=1 } END { exit !found }'; then
1122
1175
  apt_refresh_for ca-certificates curl unzip xz-utils openssl gnupg util-linux libatomic1
1123
1176
  DEBIAN_FRONTEND=noninteractive apt_install ca-certificates curl unzip xz-utils openssl gnupg util-linux libatomic1
1124
1177
  fi
1125
- local scratch node_archive bun_archive bun_folder
1178
+ local node_archive bun_archive bun_folder
1179
+ # Subshell scope retains scratch for EXIT cleanup after a failed command.
1126
1180
  scratch="$(mktemp -d)"
1127
- trap 'rm -rf -- "$scratch"' RETURN
1128
- if [[ ! -x "$NODE_DIR/bin/node" ]] || [[ "$($NODE_DIR/bin/node --version)" != "v$NODE_VERSION" ]]; then
1181
+ trap 'rm -rf -- "$scratch"' EXIT
1182
+ if ! node_ready; then
1129
1183
  node_archive="node-v$NODE_VERSION-linux-$NODE_ARCH.tar.xz"
1130
1184
  download_file "https://nodejs.org/dist/v$NODE_VERSION/$node_archive" "$scratch/$node_archive" 120
1131
1185
  download_file "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt" "$scratch/node-sums" 45
@@ -1148,9 +1202,7 @@ install_runtimes() {
1148
1202
  ln -sfnT -- "$NODE_DIR/bin/npm" /usr/local/bin/npm
1149
1203
  ln -sfnT -- "$NODE_DIR/bin/npx" /usr/local/bin/npx
1150
1204
  ln -sfnT -- "$BUN_DIR/bun" /usr/local/bin/bun
1151
- rm -rf -- "$scratch"
1152
- trap - RETURN
1153
- }
1205
+ )
1154
1206
 
1155
1207
  dependency_install() {
1156
1208
  local directory download_hosts
@@ -1314,16 +1366,16 @@ const generateCloudSetup = ({ policy, cloud, nodeVersion, files = {}, rustExcept
1314
1366
  valkey: policy.valkey
1315
1367
  })]
1316
1368
  ]);
1317
- return script.replace(/@[A-Z0-9_]+@/g, (token) => {
1369
+ return `${script.replace(/@[A-Z0-9_]+@/g, (token) => {
1318
1370
  const value = replacements.get(token);
1319
1371
  if (value === void 0) throw new Error(`Missing cloud setup field: ${token}`);
1320
1372
  return value;
1321
- });
1373
+ }).replace(/[ \t]+$/gm, "").trimEnd()}\n`;
1322
1374
  };
1323
1375
  //#endregion
1324
1376
  //#region src/cloud-setup-claude.ts
1325
1377
  const cloudClaudeSettingsPath = ".claude/settings.json";
1326
- const sessionStartHook = (script) => ({
1378
+ const releasedSessionStartHook = (script) => ({
1327
1379
  matcher: "",
1328
1380
  hooks: [{
1329
1381
  type: "command",
@@ -1340,8 +1392,30 @@ const sessionStartHook = (script) => ({
1340
1392
  fi`
1341
1393
  }]
1342
1394
  });
1395
+ const sessionStartHook = (script) => ({
1396
+ matcher: "",
1397
+ hooks: [{
1398
+ type: "command",
1399
+ command: `if [ "\${CLAUDE_CODE_REMOTE:-}" = "true" ]; then
1400
+ cloud_setup_incomplete() {
1401
+ printf '%s\\n' 'Cloud setup could not establish a verified session environment. From the repository root, run bash .agents/cloud-setup.sh install and then bash .agents/cloud-setup.sh start. Do not assume pinned tools or services are ready until start succeeds.'
1402
+ printf '%s\\n' "cloud-setup: $1" >&2
1403
+ exit 0
1404
+ }
1405
+ ${script} start >&2 || cloud_setup_incomplete 'startup failed; run install'
1406
+ if [ -n "\${CLAUDE_ENV_FILE:-}" ]; then
1407
+ if [ ! -s ${cloudShellProfilePath} ]; then
1408
+ cloud_setup_incomplete 'cloud shell profile is unavailable; run install'
1409
+ fi
1410
+ cloud_shell_exports="$(cat ${cloudShellProfilePath})" || cloud_setup_incomplete 'cloud shell profile could not be read; run install'
1411
+ [ -n "$cloud_shell_exports" ] || cloud_setup_incomplete 'cloud shell profile is unavailable; run install'
1412
+ printf '\\n%s\\n' "$cloud_shell_exports" >> "$CLAUDE_ENV_FILE" || cloud_setup_incomplete 'session environment could not be persisted; check its write access and rerun start'
1413
+ fi
1414
+ fi`
1415
+ }]
1416
+ });
1343
1417
  const cloudSessionStartHook = sessionStartHook(`bash "$CLAUDE_PROJECT_DIR/${cloudSetupPath}"`);
1344
- const previousCloudSessionStartHooks = [sessionStartHook(`bash ${cloudSetupPath}`)];
1418
+ const previousCloudSessionStartHooks = [releasedSessionStartHook(`bash ${cloudSetupPath}`), releasedSessionStartHook(`bash "$CLAUDE_PROJECT_DIR/${cloudSetupPath}"`)];
1345
1419
  const cloudAttribution = {
1346
1420
  commit: "",
1347
1421
  pr: ""
@@ -1575,6 +1649,18 @@ const javascriptDependencyLockfiles = [
1575
1649
  "yarn.lock",
1576
1650
  "pnpm-lock.yaml"
1577
1651
  ];
1652
+ const dependabotManifestEcosystems = {
1653
+ Gemfile: "bundler",
1654
+ "Gemfile.lock": "bundler",
1655
+ "composer.json": "composer",
1656
+ "composer.lock": "composer"
1657
+ };
1658
+ /** Share ecosystem inventory with snapshot selection; no dependency graph reads are needed. */
1659
+ const dependabotManifestEcosystem = (file) => {
1660
+ if (excludedInputPath(file)) return void 0;
1661
+ const basename = file.split("/").at(-1);
1662
+ for (const [name, ecosystem] of Object.entries(dependabotManifestEcosystems)) if (basename === name) return ecosystem;
1663
+ };
1578
1664
  /** Match project, environment, local, and fragment filenames recognized by mise. */
1579
1665
  const isMiseConfigPath = (file) => !excludedInputPath(file) && (/(?:^|\/)\.?mise(?:\.[^./][^/]*)?\.toml$/.test(file) || /(?:^|\/)(?:\.?mise|\.config\/mise)\/config(?:\.[^./][^/]*)?\.toml$/.test(file) || /(?:^|\/)(?:\.?mise|\.config\/mise)\/conf\.d\/[^./][^/]*\.toml$/.test(file));
1580
1666
  /** GitHub action metadata may live at the repository root or in any directory. */
@@ -1613,10 +1699,10 @@ const toolchainInputKind = (file, text = "") => {
1613
1699
  if (file === ".agents/cloud-setup.sh" || file === ".claude/settings.json" || file === "Cargo.lock") return "config";
1614
1700
  if (githubAutomationFileKind(file) !== void 0) return "config";
1615
1701
  if (excludedInputPath(file)) return void 0;
1616
- if (pythonDependencyManifestKind(file) === "pipfile-lock" || javascriptDependencyLockfiles.some((name) => file.split("/").at(-1) === name) || /(?:^|\/)uv\.lock$/.test(file)) return "presence";
1702
+ if (dependabotManifestEcosystem(file) !== void 0 || pythonDependencyManifestKind(file) === "pipfile-lock" || javascriptDependencyLockfiles.some((name) => file.split("/").at(-1) === name) || /(?:^|\/)uv\.lock$/.test(file)) return "presence";
1617
1703
  if (githubAutomationFileKind(file) !== void 0 || isShellScript(file, text) || /(?:^|\/)ci-service-images\.json$/.test(file) || isMiseConfigPath(file) || isPythonDependencyManifest(file) || isDockerDefinitionPath(file) || isComposeDefinitionPath(file) || isKubernetesDefinitionPath(file) || /(?:^|\/)(?:package\.json|consumer-compat\.json|pnpm-workspace\.yaml|stll-toolchain\.json|\.bun-version|\.node-version|\.nvmrc|\.python-version|rust-toolchain(?:\.toml)?|\.tool-versions|\.?mise\.toml|uv\.toml|\.uv\.toml|\.github\/dependabot\.ya?ml|Cargo\.toml)$/.test(file)) return "config";
1618
1704
  };
1619
1705
  //#endregion
1620
- export { nodeSelectorMatches as C, nodePolicyValid as S, parseCloudSetup as T, hasCloudAttribution as _, isPythonDependencyManifest as a, cloudSetupPath as b, pythonDependencyManifestKind as c, isComposeDefinitionPath as d, isKubernetesDefinitionPath as f, cloudSessionStartFix as g, cloudClaudeSettingsPath as h, isMiseConfigPath as i, toolchainInputKind as l, cloudAttributionFix as m, isDependabotGithubActionsPath as n, isShellScript as o, workspaceContains as p, isDockerDefinitionPath as r, javascriptDependencyLockfiles as s, githubAutomationFileKind as t, containerDocumentImages as u, hasCloudSessionStartHook as v, nodeSupportRangeMatches as w, generateCloudSetup as x, mergeCloudClaudeSettings as y };
1706
+ export { nodePolicyValid as C, parseCloudSetup as E, generateCloudSetup as S, nodeSupportRangeMatches as T, cloudSessionStartFix as _, isMiseConfigPath as a, mergeCloudClaudeSettings as b, javascriptDependencyLockfiles as c, containerDocumentImages as d, isComposeDefinitionPath as f, cloudClaudeSettingsPath as g, cloudAttributionFix as h, isDockerDefinitionPath as i, pythonDependencyManifestKind as l, workspaceContains as m, githubAutomationFileKind as n, isPythonDependencyManifest as o, isKubernetesDefinitionPath as p, isDependabotGithubActionsPath as r, isShellScript as s, dependabotManifestEcosystem as t, toolchainInputKind as u, hasCloudAttribution as v, nodeSelectorMatches as w, cloudSetupPath as x, hasCloudSessionStartHook as y };
1621
1707
 
1622
1708
  //# sourceMappingURL=toolchain-inputs.mjs.map