@stll/oxlint-config 1.0.1 → 1.1.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/README.md +85 -4
- package/dist/cloud-setup-cli.cjs +62 -21
- package/dist/cloud-setup-cli.cjs.map +1 -1
- package/dist/cloud-setup-cli.mjs +63 -22
- package/dist/cloud-setup-cli.mjs.map +1 -1
- package/dist/consumer-compat-cli.cjs +7 -6
- package/dist/consumer-compat-cli.cjs.map +1 -1
- package/dist/consumer-compat-cli.mjs +7 -6
- package/dist/consumer-compat-cli.mjs.map +1 -1
- package/dist/git-tracked-output.cjs +46 -0
- package/dist/git-tracked-output.cjs.map +1 -0
- package/dist/git-tracked-output.mjs +39 -0
- package/dist/git-tracked-output.mjs.map +1 -0
- package/dist/index.cjs.map +1 -1
- package/dist/publish-build-target-vite-dts-helper.mjs +1 -2
- package/dist/publish-build-target-vite-dts-helper2.cjs +5 -5
- package/dist/publish-build-target-vite-dts-helper2.cjs.map +1 -1
- package/dist/publish-contract-cli.cjs +20 -21
- package/dist/publish-contract-cli.cjs.map +1 -1
- package/dist/publish-contract-cli.mjs +8 -9
- package/dist/publish-contract-cli.mjs.map +1 -1
- package/dist/publish-contract.cjs +1 -1
- package/dist/publish-contract.cjs.map +1 -1
- package/dist/publish-contract.mjs +1 -1
- package/dist/rolldown-runtime.cjs +1 -1
- package/dist/toolchain-changed.cjs +19 -14
- package/dist/toolchain-changed.cjs.map +1 -1
- package/dist/toolchain-changed.mjs +21 -16
- package/dist/toolchain-changed.mjs.map +1 -1
- package/dist/toolchain-check-cli.cjs.map +1 -1
- package/dist/toolchain-check-cli.mjs.map +1 -1
- package/dist/toolchain-guard.cjs +68 -59
- package/dist/toolchain-guard.cjs.map +1 -1
- package/dist/toolchain-guard.mjs +75 -66
- package/dist/toolchain-guard.mjs.map +1 -1
- package/dist/toolchain-inputs.cjs +670 -32
- package/dist/toolchain-inputs.cjs.map +1 -1
- package/dist/toolchain-inputs.mjs +647 -33
- package/dist/toolchain-inputs.mjs.map +1 -1
- package/dist/toolchain-schema.cjs +1 -1
- package/dist/toolchain-schema.cjs.map +1 -1
- package/dist/toolchain-schema.mjs +2 -2
- package/dist/typecheck-parity-cli.cjs.map +1 -1
- package/dist/typecheck-parity-cli.mjs.map +1 -1
- package/dist/typecheck-parity.cjs +8 -7
- package/dist/typecheck-parity.cjs.map +1 -1
- package/dist/typecheck-parity.mjs +6 -5
- package/dist/typecheck-parity.mjs.map +1 -1
- package/dist/typecheck-probe-cli.cjs +1 -1
- package/dist/typecheck-probe-cli.cjs.map +1 -1
- package/dist/typecheck-probe-cli.mjs +1 -1
- package/package.json +6 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolchain-check-cli.cjs","names":["parseToolchainPolicy","checkToolchain"],"sources":["../src/toolchain-check-cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { readFileSync } from \"node:fs\";\n\nimport { checkToolchain } from \"./toolchain-guard\";\nimport { parseToolchainPolicy } from \"./toolchain-schema\";\n\ntry {\n const args = process.argv.slice(2);\n if (args.length === 1 && args[0] === \"--help\") {\n process.stdout.write(\n \"Usage: stll-toolchain-check (opt-outs: tracked stll-toolchain.json)\\n\",\n );\n process.exit(0);\n }\n if (args.length !== 0) throw new Error(`unexpected argument: ${args.at(0)}`);\n const policy = parseToolchainPolicy(\n JSON.parse(\n readFileSync(new URL(\"../toolchain.json\", import.meta.url), \"utf8\"),\n ),\n );\n const diagnostics = checkToolchain({\n root: process.cwd(),\n policy,\n onDelegated: ({ path, line, tool, selector, ref }) =>\n process.stdout.write(\n `${path}:${line}: [runtime-delegated] setup-${tool} ${selector} delegates its version to checkout ref ${ref}\\n`,\n ),\n });\n for (const diagnostic of diagnostics)\n process.stderr.write(\n `${diagnostic.path}:${diagnostic.line}: [${diagnostic.rule}] ${diagnostic.message}\\n`,\n );\n if (diagnostics.length > 0) process.exitCode = 1;\n} catch (error) {\n process.stderr.write(\n `toolchain-check:1: ${error instanceof Error ? error.message : String(error)}\\n`,\n );\n process.exitCode = 1;\n}\n"],"mappings":";;;;;;AAMA,IAAI;CACF,MAAM,OAAO,QAAQ,KAAK,MAAM,CAAC;CACjC,IAAI,KAAK,WAAW,KAAK,KAAK,OAAO,UAAU;EAC7C,QAAQ,OAAO,MACb,uEACF;EACA,QAAQ,KAAK,CAAC;CAChB;CACA,IAAI,KAAK,WAAW,GAAG,MAAM,IAAI,MAAM,wBAAwB,KAAK,GAAG,CAAC,GAAG;CAC3E,MAAM,SAASA,yBAAAA,qBACb,KAAK,OAAA,
|
|
1
|
+
{"version":3,"file":"toolchain-check-cli.cjs","names":["parseToolchainPolicy","readFileSync","checkToolchain"],"sources":["../src/toolchain-check-cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { readFileSync } from \"node:fs\";\n\nimport { checkToolchain } from \"./toolchain-guard\";\nimport { parseToolchainPolicy } from \"./toolchain-schema\";\n\ntry {\n const args = process.argv.slice(2);\n if (args.length === 1 && args[0] === \"--help\") {\n process.stdout.write(\n \"Usage: stll-toolchain-check (opt-outs: tracked stll-toolchain.json)\\n\",\n );\n process.exit(0);\n }\n if (args.length !== 0) throw new Error(`unexpected argument: ${args.at(0)}`);\n const policy = parseToolchainPolicy(\n JSON.parse(\n readFileSync(new URL(\"../toolchain.json\", import.meta.url), \"utf8\"),\n ),\n );\n const diagnostics = checkToolchain({\n root: process.cwd(),\n policy,\n onDelegated: ({ path, line, tool, selector, ref }) =>\n process.stdout.write(\n `${path}:${line}: [runtime-delegated] setup-${tool} ${selector} delegates its version to checkout ref ${ref}\\n`,\n ),\n });\n for (const diagnostic of diagnostics)\n process.stderr.write(\n `${diagnostic.path}:${diagnostic.line}: [${diagnostic.rule}] ${diagnostic.message}\\n`,\n );\n if (diagnostics.length > 0) process.exitCode = 1;\n} catch (error) {\n process.stderr.write(\n `toolchain-check:1: ${error instanceof Error ? error.message : String(error)}\\n`,\n );\n process.exitCode = 1;\n}\n"],"mappings":";;;;;;AAMA,IAAI;CACF,MAAM,OAAO,QAAQ,KAAK,MAAM,CAAC;CACjC,IAAI,KAAK,WAAW,KAAK,KAAK,OAAO,UAAU;EAC7C,QAAQ,OAAO,MACb,uEACF;EACA,QAAQ,KAAK,CAAC;CAChB;CACA,IAAI,KAAK,WAAW,GAAG,MAAM,IAAI,MAAM,wBAAwB,KAAK,GAAG,CAAC,GAAG;CAC3E,MAAM,SAASA,yBAAAA,qBACb,KAAK,OAAA,GACHC,QAAAA,aAAAA,CAAa,IAAI,IAAI,qBAAA,QAAA,KAAA,CAAA,CAAA,cAAA,UAAA,CAAA,CAAA,IAAoC,GAAG,MAAM,CACpE,CACF;CACA,MAAM,cAAcC,wBAAAA,eAAe;EACjC,MAAM,QAAQ,IAAI;EAClB;EACA,cAAc,EAAE,MAAM,MAAM,MAAM,UAAU,UAC1C,QAAQ,OAAO,MACb,GAAG,KAAK,GAAG,KAAK,8BAA8B,KAAK,GAAG,SAAS,yCAAyC,IAAI,GAC9G;CACJ,CAAC;CACD,KAAK,MAAM,cAAc,aACvB,QAAQ,OAAO,MACb,GAAG,WAAW,KAAK,GAAG,WAAW,KAAK,KAAK,WAAW,KAAK,IAAI,WAAW,QAAQ,GACpF;CACF,IAAI,YAAY,SAAS,GAAG,QAAQ,WAAW;AACjD,SAAS,OAAO;CACd,QAAQ,OAAO,MACb,sBAAsB,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,EAAE,GAC/E;CACA,QAAQ,WAAW;AACrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolchain-check-cli.mjs","names":[],"sources":["../src/toolchain-check-cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { readFileSync } from \"node:fs\";\n\nimport { checkToolchain } from \"./toolchain-guard\";\nimport { parseToolchainPolicy } from \"./toolchain-schema\";\n\ntry {\n const args = process.argv.slice(2);\n if (args.length === 1 && args[0] === \"--help\") {\n process.stdout.write(\n \"Usage: stll-toolchain-check (opt-outs: tracked stll-toolchain.json)\\n\",\n );\n process.exit(0);\n }\n if (args.length !== 0) throw new Error(`unexpected argument: ${args.at(0)}`);\n const policy = parseToolchainPolicy(\n JSON.parse(\n readFileSync(new URL(\"../toolchain.json\", import.meta.url), \"utf8\"),\n ),\n );\n const diagnostics = checkToolchain({\n root: process.cwd(),\n policy,\n onDelegated: ({ path, line, tool, selector, ref }) =>\n process.stdout.write(\n `${path}:${line}: [runtime-delegated] setup-${tool} ${selector} delegates its version to checkout ref ${ref}\\n`,\n ),\n });\n for (const diagnostic of diagnostics)\n process.stderr.write(\n `${diagnostic.path}:${diagnostic.line}: [${diagnostic.rule}] ${diagnostic.message}\\n`,\n );\n if (diagnostics.length > 0) process.exitCode = 1;\n} catch (error) {\n process.stderr.write(\n `toolchain-check:1: ${error instanceof Error ? error.message : String(error)}\\n`,\n );\n process.exitCode = 1;\n}\n"],"mappings":";;;;;AAMA,IAAI;CACF,MAAM,OAAO,QAAQ,KAAK,MAAM,CAAC;CACjC,IAAI,KAAK,WAAW,KAAK,KAAK,OAAO,UAAU;EAC7C,QAAQ,OAAO,MACb,uEACF;EACA,QAAQ,KAAK,CAAC;CAChB;CACA,IAAI,KAAK,WAAW,GAAG,MAAM,IAAI,MAAM,wBAAwB,KAAK,GAAG,CAAC,GAAG;CAC3E,MAAM,SAAS,qBACb,KAAK,MACH,aAAa,IAAI,IAAI,qBAAqB,
|
|
1
|
+
{"version":3,"file":"toolchain-check-cli.mjs","names":[],"sources":["../src/toolchain-check-cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { readFileSync } from \"node:fs\";\n\nimport { checkToolchain } from \"./toolchain-guard\";\nimport { parseToolchainPolicy } from \"./toolchain-schema\";\n\ntry {\n const args = process.argv.slice(2);\n if (args.length === 1 && args[0] === \"--help\") {\n process.stdout.write(\n \"Usage: stll-toolchain-check (opt-outs: tracked stll-toolchain.json)\\n\",\n );\n process.exit(0);\n }\n if (args.length !== 0) throw new Error(`unexpected argument: ${args.at(0)}`);\n const policy = parseToolchainPolicy(\n JSON.parse(\n readFileSync(new URL(\"../toolchain.json\", import.meta.url), \"utf8\"),\n ),\n );\n const diagnostics = checkToolchain({\n root: process.cwd(),\n policy,\n onDelegated: ({ path, line, tool, selector, ref }) =>\n process.stdout.write(\n `${path}:${line}: [runtime-delegated] setup-${tool} ${selector} delegates its version to checkout ref ${ref}\\n`,\n ),\n });\n for (const diagnostic of diagnostics)\n process.stderr.write(\n `${diagnostic.path}:${diagnostic.line}: [${diagnostic.rule}] ${diagnostic.message}\\n`,\n );\n if (diagnostics.length > 0) process.exitCode = 1;\n} catch (error) {\n process.stderr.write(\n `toolchain-check:1: ${error instanceof Error ? error.message : String(error)}\\n`,\n );\n process.exitCode = 1;\n}\n"],"mappings":";;;;;AAMA,IAAI;CACF,MAAM,OAAO,QAAQ,KAAK,MAAM,CAAC;CACjC,IAAI,KAAK,WAAW,KAAK,KAAK,OAAO,UAAU;EAC7C,QAAQ,OAAO,MACb,uEACF;EACA,QAAQ,KAAK,CAAC;CAChB;CACA,IAAI,KAAK,WAAW,GAAG,MAAM,IAAI,MAAM,wBAAwB,KAAK,GAAG,CAAC,GAAG;CAC3E,MAAM,SAAS,qBACb,KAAK,MACH,aAAa,IAAI,IAAI,qBAAqB,YAAY,GAAG,GAAG,MAAM,CACpE,CACF;CACA,MAAM,cAAc,eAAe;EACjC,MAAM,QAAQ,IAAI;EAClB;EACA,cAAc,EAAE,MAAM,MAAM,MAAM,UAAU,UAC1C,QAAQ,OAAO,MACb,GAAG,KAAK,GAAG,KAAK,8BAA8B,KAAK,GAAG,SAAS,yCAAyC,IAAI,GAC9G;CACJ,CAAC;CACD,KAAK,MAAM,cAAc,aACvB,QAAQ,OAAO,MACb,GAAG,WAAW,KAAK,GAAG,WAAW,KAAK,KAAK,WAAW,KAAK,IAAI,WAAW,QAAQ,GACpF;CACF,IAAI,YAAY,SAAS,GAAG,QAAQ,WAAW;AACjD,SAAS,OAAO;CACd,QAAQ,OAAO,MACb,sBAAsB,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,EAAE,GAC/E;CACA,QAAQ,WAAW;AACrB"}
|
package/dist/toolchain-guard.cjs
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
const require_rolldown_runtime = require("./rolldown-runtime.cjs");
|
|
2
2
|
const require_toolchain_inputs = require("./toolchain-inputs.cjs");
|
|
3
|
+
const require_git_tracked_output = require("./git-tracked-output.cjs");
|
|
3
4
|
const require_toolchain_schema = require("./toolchain-schema.cjs");
|
|
4
5
|
let node_fs = require("node:fs");
|
|
5
6
|
let node_child_process = require("node:child_process");
|
|
6
7
|
let node_path = require("node:path");
|
|
7
8
|
node_path = require_rolldown_runtime.__toESM(node_path, 1);
|
|
8
9
|
let semver = require("semver");
|
|
10
|
+
let smol_toml = require("smol-toml");
|
|
9
11
|
let yaml = require("yaml");
|
|
10
12
|
let picomatch = require("picomatch");
|
|
11
13
|
picomatch = require_rolldown_runtime.__toESM(picomatch, 1);
|
|
12
|
-
let smol_toml = require("smol-toml");
|
|
13
14
|
//#endregion
|
|
14
15
|
//#region src/toolchain-consumer-checks.ts
|
|
15
|
-
const consumerRunnerVersion = "1.0
|
|
16
|
+
const consumerRunnerVersion = "1.1.0";
|
|
16
17
|
const consumerCheckWorkflow = "stella/.github/.github/workflows/package-consumer-compat.yml";
|
|
17
18
|
const record$7 = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
18
19
|
const repositoryDirectory = (value) => typeof value === "string" && value !== "" && !value.includes("\\") && !value.includes("${{") && !value.split("").some((character) => {
|
|
@@ -194,7 +195,8 @@ const checkConsumerChecks = ({ declarations, files, policy }) => {
|
|
|
194
195
|
const fixtureManifest = node_path.default.posix.join(declaration.fixturePath, "consumer-compat.json");
|
|
195
196
|
const fixtureSource = files[fixtureManifest];
|
|
196
197
|
if (fixtureSource === void 0) throw new Error(`consumerChecks fixture configuration must be tracked: ${fixtureManifest}`);
|
|
197
|
-
const
|
|
198
|
+
const fixtureConfiguration = JSON.parse(fixtureSource);
|
|
199
|
+
const fixtures = require_toolchain_schema.parseConsumerFixtures(fixtureConfiguration);
|
|
198
200
|
require_toolchain_schema.assertConsumerFixtureSelection({
|
|
199
201
|
selected: declaration.packages,
|
|
200
202
|
fixtures
|
|
@@ -1107,14 +1109,15 @@ const shellCommandSegments = (command, grouping = "boundaries") => {
|
|
|
1107
1109
|
for (const source of sources) {
|
|
1108
1110
|
const firstSegment = segments.length;
|
|
1109
1111
|
segments.push([]);
|
|
1110
|
-
for (const { kind, value: word } of shellArgumentTokens(shellTokens(source))) if (kind === "boundary")
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1112
|
+
for (const { kind, value: word } of shellArgumentTokens(shellTokens(source))) if (kind === "boundary") {
|
|
1113
|
+
if ([
|
|
1114
|
+
"(",
|
|
1115
|
+
")",
|
|
1116
|
+
"{",
|
|
1117
|
+
"}"
|
|
1118
|
+
].includes(word) && grouping === "tokens") segments.at(-1)?.push(word);
|
|
1119
|
+
else segments.push([]);
|
|
1120
|
+
} else segments.at(-1)?.push(word);
|
|
1118
1121
|
for (const words of segments.slice(firstSegment)) {
|
|
1119
1122
|
const body = shellCommandBody(words);
|
|
1120
1123
|
if (body === void 0) continue;
|
|
@@ -1608,7 +1611,8 @@ const checkPackageFiles = ({ files, policy }) => {
|
|
|
1608
1611
|
if (resolved === specifier) return false;
|
|
1609
1612
|
if (qualifier === void 0 || (0, semver.validRange)(qualifier) === null) return true;
|
|
1610
1613
|
if (typeof specifier !== "string") return false;
|
|
1611
|
-
const
|
|
1614
|
+
const versionSpecifier = specifier.startsWith("npm:") ? specifier.slice(specifier.lastIndexOf("@") + 1) : specifier;
|
|
1615
|
+
const release = (0, semver.valid)(versionSpecifier);
|
|
1612
1616
|
return release !== null && (0, semver.satisfies)(release, qualifier);
|
|
1613
1617
|
}) && typeof resolved === "string" && tsSpecifiers.get(name)?.has(resolved)) add({
|
|
1614
1618
|
file,
|
|
@@ -2203,28 +2207,30 @@ const checkRuntimeFile = ({ file, text, policy, trackedFiles, readFile, reposito
|
|
|
2203
2207
|
if (record$1(defaults) && defaults["rust-version"] !== void 0) rustFloor(defaults["rust-version"]);
|
|
2204
2208
|
const pkg = parsed["package"];
|
|
2205
2209
|
const version = record$1(pkg) ? pkg["rust-version"] : void 0;
|
|
2206
|
-
if (version !== void 0)
|
|
2207
|
-
|
|
2208
|
-
|
|
2209
|
-
|
|
2210
|
-
|
|
2211
|
-
|
|
2212
|
-
|
|
2213
|
-
|
|
2214
|
-
if (explicitPath !== void 0
|
|
2215
|
-
|
|
2216
|
-
|
|
2217
|
-
|
|
2218
|
-
|
|
2219
|
-
|
|
2220
|
-
|
|
2210
|
+
if (version !== void 0) {
|
|
2211
|
+
if (!record$1(version)) rustFloor(version);
|
|
2212
|
+
else {
|
|
2213
|
+
let inherited;
|
|
2214
|
+
if (version["workspace"] === true && record$1(pkg)) {
|
|
2215
|
+
const explicit = pkg["workspace"];
|
|
2216
|
+
let directory = node_path.default.posix.dirname(file);
|
|
2217
|
+
const explicitPath = typeof explicit === "string" && !explicit.includes("\\") && !explicit.includes(":") && !explicit.includes("${{") && !node_path.default.posix.isAbsolute(explicit) ? node_path.default.posix.normalize(node_path.default.posix.join(directory, explicit)) : void 0;
|
|
2218
|
+
if (explicit === void 0 || explicitPath !== void 0 && explicitPath !== ".." && !explicitPath.startsWith("../")) {
|
|
2219
|
+
if (explicitPath !== void 0) directory = explicitPath;
|
|
2220
|
+
while (true) {
|
|
2221
|
+
const table = readManifest(node_path.default.posix.join(directory, "Cargo.toml"))?.["workspace"];
|
|
2222
|
+
if (record$1(table)) {
|
|
2223
|
+
const fields = table["package"];
|
|
2224
|
+
inherited = record$1(fields) ? fields["rust-version"] : void 0;
|
|
2225
|
+
break;
|
|
2226
|
+
}
|
|
2227
|
+
if (explicit !== void 0 || directory === ".") break;
|
|
2228
|
+
directory = node_path.default.posix.dirname(directory);
|
|
2221
2229
|
}
|
|
2222
|
-
if (explicit !== void 0 || directory === ".") break;
|
|
2223
|
-
directory = node_path.default.posix.dirname(directory);
|
|
2224
2230
|
}
|
|
2225
2231
|
}
|
|
2232
|
+
rustFloor(inherited);
|
|
2226
2233
|
}
|
|
2227
|
-
rustFloor(inherited);
|
|
2228
2234
|
}
|
|
2229
2235
|
}
|
|
2230
2236
|
}
|
|
@@ -2845,9 +2851,10 @@ const checkRuntimeFile = ({ file, text, policy, trackedFiles, readFile, reposito
|
|
|
2845
2851
|
for (let index = start + 3; index < value.length; index++) {
|
|
2846
2852
|
const character = value.at(index);
|
|
2847
2853
|
if (quote !== void 0) {
|
|
2848
|
-
if (character === quote)
|
|
2849
|
-
|
|
2850
|
-
|
|
2854
|
+
if (character === quote) {
|
|
2855
|
+
if (quote === "'" && value.at(index + 1) === "'") index++;
|
|
2856
|
+
else quote = void 0;
|
|
2857
|
+
} else if (quote === "\"" && character === "\\") index++;
|
|
2851
2858
|
continue;
|
|
2852
2859
|
}
|
|
2853
2860
|
if (character === "'" || character === "\"") quote = character;
|
|
@@ -3249,15 +3256,7 @@ const parseToolchainConfiguration = (input) => {
|
|
|
3249
3256
|
/** Read one tracked configuration snapshot for guards and policy generation. */
|
|
3250
3257
|
const readToolchainInputs = (root) => {
|
|
3251
3258
|
const diagnostics = [];
|
|
3252
|
-
const tracked = (
|
|
3253
|
-
"ls-files",
|
|
3254
|
-
"-z",
|
|
3255
|
-
"--cached",
|
|
3256
|
-
"--stage"
|
|
3257
|
-
], {
|
|
3258
|
-
cwd: root,
|
|
3259
|
-
encoding: "utf8"
|
|
3260
|
-
}).split("\0").filter((entry) => entry !== "" && !entry.startsWith("160000 ")).map((entry) => entry.slice(entry.indexOf(" ") + 1));
|
|
3259
|
+
const tracked = require_git_tracked_output.readGitTrackedOutput(root, "staged").split("\0").filter((entry) => entry !== "" && !entry.startsWith("160000 ")).map((entry) => entry.slice(entry.indexOf(" ") + 1));
|
|
3261
3260
|
const files = {};
|
|
3262
3261
|
const trackedFiles = new Set(tracked);
|
|
3263
3262
|
const resolvedRoot = (0, node_fs.realpathSync)(root);
|
|
@@ -3349,26 +3348,36 @@ const checkToolchain = ({ root, policy, onDelegated }) => {
|
|
|
3349
3348
|
line: 1,
|
|
3350
3349
|
message: "cloud setup script requires an explicit cloud declaration in stll-toolchain.json"
|
|
3351
3350
|
});
|
|
3352
|
-
if (cloud !== void 0)
|
|
3353
|
-
|
|
3354
|
-
if (nodeVersion === void 0) throw new Error("cloud setup requires a tracked root .node-version with an exact stable release");
|
|
3355
|
-
if (script !== require_toolchain_inputs.generateCloudSetup({
|
|
3356
|
-
policy,
|
|
3357
|
-
cloud,
|
|
3358
|
-
nodeVersion: nodeVersion.trim()
|
|
3359
|
-
})) diagnostics.push({
|
|
3351
|
+
if (cloud !== void 0) {
|
|
3352
|
+
if (!require_toolchain_inputs.hasCloudSessionStartHook(files[".claude/settings.json"])) diagnostics.push({
|
|
3360
3353
|
rule: "cloud-setup-drift",
|
|
3361
|
-
path: require_toolchain_inputs.
|
|
3354
|
+
path: require_toolchain_inputs.cloudClaudeSettingsPath,
|
|
3362
3355
|
line: 1,
|
|
3363
|
-
message:
|
|
3364
|
-
});
|
|
3365
|
-
} catch (error) {
|
|
3366
|
-
diagnostics.push({
|
|
3367
|
-
rule: "cloud-setup-drift",
|
|
3368
|
-
path: require_toolchain_inputs.cloudSetupPath,
|
|
3369
|
-
line: 1,
|
|
3370
|
-
message: error instanceof Error ? error.message : String(error)
|
|
3356
|
+
message: `tracked Claude cloud SessionStart hook is missing, disabled or differs from shared policy; run stll-cloud-setup; if automatic merge is unsafe, ${require_toolchain_inputs.cloudSessionStartFix}`
|
|
3371
3357
|
});
|
|
3358
|
+
try {
|
|
3359
|
+
const nodeVersion = files[".node-version"];
|
|
3360
|
+
if (nodeVersion === void 0) throw new Error("cloud setup requires a tracked root .node-version with an exact stable release");
|
|
3361
|
+
if (script !== require_toolchain_inputs.generateCloudSetup({
|
|
3362
|
+
policy,
|
|
3363
|
+
cloud,
|
|
3364
|
+
nodeVersion: nodeVersion.trim(),
|
|
3365
|
+
files,
|
|
3366
|
+
rustExceptions: configuration.rustExceptions
|
|
3367
|
+
})) diagnostics.push({
|
|
3368
|
+
rule: "cloud-setup-drift",
|
|
3369
|
+
path: require_toolchain_inputs.cloudSetupPath,
|
|
3370
|
+
line: 1,
|
|
3371
|
+
message: "cloud setup script is missing or differs from shared policy; run stll-cloud-setup"
|
|
3372
|
+
});
|
|
3373
|
+
} catch (error) {
|
|
3374
|
+
diagnostics.push({
|
|
3375
|
+
rule: "cloud-setup-drift",
|
|
3376
|
+
path: require_toolchain_inputs.cloudSetupPath,
|
|
3377
|
+
line: 1,
|
|
3378
|
+
message: error instanceof Error ? error.message : String(error)
|
|
3379
|
+
});
|
|
3380
|
+
}
|
|
3372
3381
|
}
|
|
3373
3382
|
const exercisedFloors = /* @__PURE__ */ new Set();
|
|
3374
3383
|
const mismatchedFloors = /* @__PURE__ */ new Set();
|