pi-lens 4.4.1 → 4.4.3
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 +88 -0
- package/config/dependency-cruiser-eager-allowlist.json +3 -1
- package/dist/{chunk-BJF25SUG.js → chunk-23WOO7TX.js} +11 -10
- package/dist/{chunk-WATC3IQR.js → chunk-2B73ZPOK.js} +3 -3
- package/dist/{chunk-N2IRDBZI.js → chunk-2BBLFX75.js} +101 -11
- package/dist/{chunk-TA5L5KWQ.js → chunk-2CD5RS6M.js} +2 -2
- package/dist/{chunk-3TTPKMEF.js → chunk-2VUQMUMT.js} +38 -37
- package/dist/{chunk-5JHXUETW.js → chunk-3EFKIGZN.js} +3 -3
- package/dist/chunk-3JNKMP3B.js +17 -0
- package/dist/{chunk-6P54TMWL.js → chunk-3VPVG5SU.js} +6 -6
- package/dist/{chunk-ZETYB3XG.js → chunk-3W7IEVVL.js} +44 -28
- package/dist/chunk-3YN6V5TV.js +85 -0
- package/dist/chunk-466Z26MG.js +30 -0
- package/dist/{chunk-PCHDGUKT.js → chunk-4UNXBNE2.js} +12 -11
- package/dist/{chunk-J7WJZ6W7.js → chunk-4W4VLAPJ.js} +12 -11
- package/dist/{chunk-F5VLZHUW.js → chunk-52FUZI6K.js} +4 -2
- package/dist/{chunk-H5EV3VMF.js → chunk-5NGR67U5.js} +2 -2
- package/dist/{chunk-CBD2B5CP.js → chunk-5UCAH366.js} +21 -20
- package/dist/{chunk-BHWHXMQ2.js → chunk-67WMNWEE.js} +9 -8
- package/dist/{chunk-USHG4DLH.js → chunk-6C7JWPCP.js} +7 -7
- package/dist/{chunk-VPWKF3GN.js → chunk-6GFRNVYR.js} +11 -10
- package/dist/{chunk-3JL6IFD7.js → chunk-6SDEP3AJ.js} +9 -8
- package/dist/{chunk-NJF2X5XF.js → chunk-6STA6Z7I.js} +19 -17
- package/dist/{chunk-KJCWXUUS.js → chunk-724UL2TJ.js} +6 -4
- package/dist/{chunk-MQA2YBAH.js → chunk-76MWC2K6.js} +3 -3
- package/dist/{chunk-YLN4K6WD.js → chunk-77M37OKR.js} +10 -8
- package/dist/{chunk-XHSCVSOL.js → chunk-7DYBLXYA.js} +3 -3
- package/dist/{chunk-OC7LYAU5.js → chunk-AB3YYG6N.js} +24 -10
- package/dist/{chunk-LD7WFTRX.js → chunk-ACXEQZOU.js} +16 -16
- package/dist/{chunk-VSMJK3ZJ.js → chunk-AOHZU2BM.js} +1 -1
- package/dist/{chunk-T4QZ6FEH.js → chunk-AW7R2GWG.js} +65 -8
- package/dist/{chunk-GAYGGICG.js → chunk-BKE7E7TC.js} +10 -9
- package/dist/{chunk-EUT3B22Y.js → chunk-BRGDSBJE.js} +13 -12
- package/dist/{chunk-T54VJRAD.js → chunk-C34ZXZ7O.js} +55 -11
- package/dist/{chunk-UGSMCQ4D.js → chunk-CHOW74WE.js} +1 -1
- package/dist/{chunk-H2W2AXD3.js → chunk-CMMHNUZ2.js} +66 -58
- package/dist/chunk-CSHFH5IN.js +17 -0
- package/dist/chunk-EC47DWFA.js +56 -0
- package/dist/{chunk-KJN4IOEJ.js → chunk-EJIUXPBX.js} +1 -1
- package/dist/{chunk-IQZXOZ7S.js → chunk-EU63SDCG.js} +720 -334
- package/dist/{chunk-LNOMA3MP.js → chunk-FCSOVF55.js} +107 -3
- package/dist/{chunk-CFYISHUW.js → chunk-FLKWCIZH.js} +8 -5
- package/dist/{chunk-OYTMZXRF.js → chunk-FMSO6RDZ.js} +16 -14
- package/dist/{chunk-IUKPRZER.js → chunk-GAEGEPOC.js} +2 -2
- package/dist/{chunk-6XX5HCLK.js → chunk-GBPP5P7X.js} +4 -4
- package/dist/{chunk-TQFBZVCG.js → chunk-GXW6K4YJ.js} +1 -1
- package/dist/{chunk-ZZUFZUQZ.js → chunk-H6MF6EVN.js} +331 -107
- package/dist/{chunk-3JSEWUWI.js → chunk-IBGIOBEE.js} +3 -3
- package/dist/chunk-IZSHAIJ7.js +26 -0
- package/dist/{chunk-7ELY2CSM.js → chunk-JAU72XNY.js} +16 -14
- package/dist/chunk-JMYYOTQG.js +77 -0
- package/dist/{chunk-ELVWJYRV.js → chunk-JSQFTSC6.js} +12 -11
- package/dist/{chunk-J6DFZDFA.js → chunk-KBG47GHP.js} +4 -4
- package/dist/chunk-KDERNTCQ.js +28 -0
- package/dist/chunk-KSX3TXSZ.js +69 -0
- package/dist/{chunk-XGUL4SLQ.js → chunk-L3BLXZG7.js} +2 -2
- package/dist/chunk-LOP6GRPH.js +31 -0
- package/dist/{chunk-MTDRLSI7.js → chunk-M6HSLBWY.js} +1064 -986
- package/dist/chunk-MQLUAEOC.js +162 -0
- package/dist/{chunk-3MRXIJ6I.js → chunk-MRXKYPCS.js} +2 -2
- package/dist/{chunk-D65GOCJB.js → chunk-MXGY6KPT.js} +19 -16
- package/dist/{chunk-G3RLJYA2.js → chunk-N2H3ZPZY.js} +47 -1
- package/dist/{chunk-HREZQCT3.js → chunk-N3X6Q4YT.js} +3 -3
- package/dist/{chunk-HSIRMK2D.js → chunk-OCAGUNBC.js} +15 -15
- package/dist/{chunk-ZOEYVXSV.js → chunk-OXXKQCSV.js} +6 -6
- package/dist/{chunk-S6AMWKPC.js → chunk-P7266HLM.js} +2 -2
- package/dist/{chunk-64LU2OVH.js → chunk-PHDMFAKM.js} +12 -2
- package/dist/{chunk-IMSQR4WO.js → chunk-PNQDPDRC.js} +1 -1
- package/dist/{chunk-IUR76K6A.js → chunk-Q7DUK4LX.js} +5 -5
- package/dist/{chunk-CULQYFLU.js → chunk-QGQ5CCCG.js} +2 -2
- package/dist/{chunk-UEAHAMEI.js → chunk-QHJ6DQ2R.js} +11 -11
- package/dist/{chunk-BNKLYOOO.js → chunk-QILIYSJF.js} +1 -1
- package/dist/{chunk-VYKKMYVT.js → chunk-QOBUHWHX.js} +11 -6
- package/dist/{chunk-3PNFWVHT.js → chunk-QQNQ7SJW.js} +2 -75
- package/dist/{chunk-7M4T5N3V.js → chunk-R3PCY3YS.js} +14 -13
- package/dist/{chunk-MGIWSROG.js → chunk-RPLINGVB.js} +7 -7
- package/dist/{chunk-CMU4RMJB.js → chunk-RWWYJ623.js} +10 -1
- package/dist/{chunk-3FERWMCH.js → chunk-RXCOMYPY.js} +27 -26
- package/dist/{chunk-7BX5DWSA.js → chunk-SAEFPSB6.js} +11 -11
- package/dist/{chunk-N7YNJE5R.js → chunk-SQ4TVJBR.js} +10 -10
- package/dist/{chunk-DMS52BEP.js → chunk-SS36ZX4J.js} +9 -7
- package/dist/{chunk-JONGANYH.js → chunk-T6CPIZNT.js} +32 -30
- package/dist/{chunk-6UYA642J.js → chunk-TYM6OUIT.js} +13 -12
- package/dist/{chunk-ALQRYH6O.js → chunk-UXGETRP4.js} +13 -12
- package/dist/{chunk-FGALODG3.js → chunk-UZ3TUTRV.js} +1 -1
- package/dist/{chunk-J3FZR3YY.js → chunk-VCHXCQFG.js} +3 -3
- package/dist/{chunk-3P4PF2BX.js → chunk-VCO24T4L.js} +34 -22
- package/dist/{chunk-O7HZX7CA.js → chunk-VRZP76YM.js} +1 -1
- package/dist/{chunk-VZHJS6DR.js → chunk-VSSBEUFT.js} +16 -15
- package/dist/{chunk-U52SAGRM.js → chunk-VWCXW2E7.js} +1 -1
- package/dist/{chunk-WW5BLB74.js → chunk-WOA4LN2R.js} +2 -2
- package/dist/{chunk-ZMOMPX2Z.js → chunk-WU567RSC.js} +11 -10
- package/dist/{chunk-N77WFUL7.js → chunk-XAGLWMJ4.js} +23 -22
- package/dist/{chunk-WSEWKCXU.js → chunk-XCJN5IJU.js} +4 -4
- package/dist/{chunk-IR6XFA5P.js → chunk-XIJZVPD5.js} +16 -14
- package/dist/{chunk-OYOB3ZFG.js → chunk-XMSXXAHW.js} +2 -2
- package/dist/{chunk-34OCDWOS.js → chunk-XTMJ7XDT.js} +1 -1
- package/dist/{chunk-Z6BB4JLQ.js → chunk-XVF2VVXP.js} +5 -3
- package/dist/{chunk-AFZYMAIV.js → chunk-YIUAVF7E.js} +37 -35
- package/dist/{chunk-NFXP47RV.js → chunk-YSZNHOBY.js} +85 -31
- package/dist/{chunk-V5MEBST3.js → chunk-YYOIQFRS.js} +21 -21
- package/dist/chunk-Z527N6YQ.js +28 -0
- package/dist/{chunk-D6YF5HKX.js → chunk-ZANLILYD.js} +22 -2
- package/dist/{chunk-2UMYMRI3.js → chunk-ZGDGW2V3.js} +2 -2
- package/dist/{chunk-6B5I6ICN.js → chunk-ZHFZWTZV.js} +12 -11
- package/dist/{chunk-OEX24ECI.js → chunk-ZWFS3OEF.js} +51 -41
- package/dist/{chunk-AXKPQ6ZI.js → chunk-ZXYDQ3TZ.js} +5 -5
- package/dist/index.js +73783 -71033
- package/dist/mcp/analyze-cli.js +18 -8
- package/dist/mcp/cli.js +48 -37
- package/dist/mcp/server.js +568 -397
- package/dist/mcp/worker.js +67 -55
- package/dist/probes/installer.js +20 -19
- package/docs/astplayground.md +1 -1
- package/docs/configuration.md +29 -0
- package/docs/dependencies.md +3 -0
- package/docs/features.md +2 -2
- package/docs/globalconfig.md +2 -0
- package/docs/language-coverage.md +2 -1
- package/docs/lsp-capability-matrix.md +29 -7
- package/docs/lsp-idle-eviction.md +38 -47
- package/docs/pi-lens-fixer.md +4 -0
- package/docs/pi-lens-merge-policy.md +17 -4
- package/docs/pi-lens-retro.md +2 -1
- package/docs/pi-lens-reviewer.md +18 -0
- package/docs/pi-lens-subagent.md +7 -0
- package/docs/real-harness.md +17 -0
- package/docs/schema/pi-lens-config-v1.json +37 -2
- package/docs/servercapabilities.md +15 -4
- package/docs/settings.md +2 -1
- package/package.json +1 -1
- package/dist/chunk-2FQ62SPM.js +0 -83
- package/dist/chunk-7AXO3ZDF.js +0 -30
- package/dist/chunk-KMGPUKFD.js +0 -25
- package/dist/chunk-OZJINN4O.js +0 -84
- package/dist/chunk-RJFED73B.js +0 -79
- package/dist/chunk-RTQNRM5X.js +0 -27
- package/dist/chunk-VGEVL5EQ.js +0 -29
- package/dist/chunk-WPE5FPGR.js +0 -54
- package/dist/chunk-Z7QQA2KT.js +0 -27
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
getGlobalPiLensDir
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-C34ZXZ7O.js";
|
|
5
5
|
import {
|
|
6
6
|
SPECIAL_FILENAMES
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-PHDMFAKM.js";
|
|
8
8
|
import {
|
|
9
9
|
getTurnId
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-AOHZU2BM.js";
|
|
11
11
|
import {
|
|
12
12
|
BoundedFifoMap
|
|
13
13
|
} from "./chunk-ABBOA7UD.js";
|
|
@@ -180,6 +180,7 @@ var LANGUAGES = [
|
|
|
180
180
|
extensions: [".kt", ".kts"],
|
|
181
181
|
grammar: "kotlin"
|
|
182
182
|
},
|
|
183
|
+
{ id: "lean", kind: "lean", extensions: [".lean"] },
|
|
183
184
|
{ id: "less", kind: "css", extensions: [".less"] },
|
|
184
185
|
{ id: "lua", kind: "lua", extensions: [".lua"], grammar: "lua" },
|
|
185
186
|
{ id: "markdown", kind: "markdown", extensions: [".md", ".mdx"] },
|
|
@@ -409,7 +410,8 @@ var SCAN_LANGUAGE_PRIORITY = [
|
|
|
409
410
|
["json", "jsonc"],
|
|
410
411
|
["yaml"],
|
|
411
412
|
["toml"],
|
|
412
|
-
["prisma"]
|
|
413
|
+
["prisma"],
|
|
414
|
+
["lean"]
|
|
413
415
|
];
|
|
414
416
|
|
|
415
417
|
export {
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
extractFactsFromTree
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-GXW6K4YJ.js";
|
|
5
5
|
import {
|
|
6
6
|
findOwnerName
|
|
7
7
|
} from "./chunk-5W3R6LFT.js";
|
|
8
8
|
import {
|
|
9
9
|
firstChildOfType,
|
|
10
10
|
walk
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-QHJ6DQ2R.js";
|
|
12
12
|
import {
|
|
13
13
|
isJstsFactFile
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-PHDMFAKM.js";
|
|
15
15
|
|
|
16
16
|
// dist/clients/dispatch/facts/function-facts.js
|
|
17
17
|
var BOUNDARY_PREFIXES = [
|
|
@@ -1,27 +1,29 @@
|
|
|
1
1
|
import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
scannerReportParentDir
|
|
4
|
+
} from "./chunk-CSHFH5IN.js";
|
|
2
5
|
import {
|
|
3
6
|
getScratchTreeGlobPatterns,
|
|
4
7
|
nestedWorktreeOffsets
|
|
5
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-VCHXCQFG.js";
|
|
6
9
|
import {
|
|
7
10
|
SecurityScanClient
|
|
8
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-3EFKIGZN.js";
|
|
9
12
|
import {
|
|
10
13
|
safeSpawnAsync
|
|
11
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-C34ZXZ7O.js";
|
|
12
15
|
import {
|
|
13
16
|
loadPiLensProjectConfig
|
|
14
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-2BBLFX75.js";
|
|
15
18
|
import {
|
|
16
19
|
incrementDegradationCount
|
|
17
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-JAU72XNY.js";
|
|
18
21
|
import {
|
|
19
22
|
toPosix
|
|
20
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-N2H3ZPZY.js";
|
|
21
24
|
|
|
22
25
|
// dist/clients/trivy-client.js
|
|
23
26
|
import * as fs from "node:fs";
|
|
24
|
-
import * as os from "node:os";
|
|
25
27
|
import * as path from "node:path";
|
|
26
28
|
import { mkdtempSync } from "node:fs";
|
|
27
29
|
var EMPTY_RESULT = {
|
|
@@ -178,7 +180,7 @@ var TrivyClient = class extends SecurityScanClient {
|
|
|
178
180
|
const scannedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
179
181
|
const bin = this.binaryPath ?? "trivy";
|
|
180
182
|
const severities = resolveSeverityFloor(cwd);
|
|
181
|
-
const outDir = mkdtempSync(path.join(
|
|
183
|
+
const outDir = mkdtempSync(path.join(scannerReportParentDir(), "pi-lens-trivy-"));
|
|
182
184
|
const reportPath = path.join(outDir, "trivy-report.json");
|
|
183
185
|
try {
|
|
184
186
|
const result = await safeSpawnAsync(bin, [
|
|
@@ -2,16 +2,16 @@ import { createRequire as __pilensCreateRequire } from "node:module"; const requ
|
|
|
2
2
|
import {
|
|
3
3
|
createAvailabilityProbeFlight,
|
|
4
4
|
probeToolAsync
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-RWWYJ623.js";
|
|
6
6
|
import {
|
|
7
7
|
classifyProbeFailure,
|
|
8
8
|
createAvailabilityLatch,
|
|
9
9
|
logAvailabilityDecision,
|
|
10
10
|
startHostStallSampler
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-VRZP76YM.js";
|
|
12
12
|
import {
|
|
13
13
|
createGenerationSource
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-C34ZXZ7O.js";
|
|
15
15
|
import {
|
|
16
16
|
createSingleFlight
|
|
17
17
|
} from "./chunk-BW5KFIQC.js";
|
|
@@ -4,29 +4,32 @@ import {
|
|
|
4
4
|
discoverManagedTool,
|
|
5
5
|
getManagedToolEnvironment,
|
|
6
6
|
resolveAvailableOrInstall
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-YSZNHOBY.js";
|
|
8
8
|
import {
|
|
9
9
|
mapWithConcurrency
|
|
10
10
|
} from "./chunk-XIMYZ3JA.js";
|
|
11
11
|
import {
|
|
12
12
|
findNodeToolBinary
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-AW7R2GWG.js";
|
|
14
|
+
import {
|
|
15
|
+
getIsolatedNpxSpawnOptions
|
|
16
|
+
} from "./chunk-RWWYJ623.js";
|
|
14
17
|
import {
|
|
15
18
|
createAvailabilityLatch
|
|
16
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-VRZP76YM.js";
|
|
17
20
|
import {
|
|
18
21
|
safeSpawnAsync
|
|
19
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-C34ZXZ7O.js";
|
|
20
23
|
import {
|
|
21
24
|
compareOrdinal,
|
|
22
25
|
recordDegradationOnce
|
|
23
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-JAU72XNY.js";
|
|
24
27
|
import {
|
|
25
28
|
createSubsystemLogger
|
|
26
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-XTMJ7XDT.js";
|
|
27
30
|
import {
|
|
28
31
|
isFullyQualified
|
|
29
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-N2H3ZPZY.js";
|
|
30
33
|
|
|
31
34
|
// dist/clients/dependency-checker.js
|
|
32
35
|
import * as fs from "node:fs";
|
|
@@ -41,7 +44,12 @@ function buildMadgeArgs(target, projectRoot) {
|
|
|
41
44
|
return args;
|
|
42
45
|
}
|
|
43
46
|
function parseMadgeCycles(stdout, baseDir, projectRoot) {
|
|
44
|
-
|
|
47
|
+
let parsed;
|
|
48
|
+
try {
|
|
49
|
+
parsed = JSON.parse(stdout || "[]");
|
|
50
|
+
} catch (err) {
|
|
51
|
+
throw new Error(`madge report is not valid JSON: ${err instanceof Error ? err.message : String(err)}`);
|
|
52
|
+
}
|
|
45
53
|
const cycles = Array.isArray(parsed) ? parsed : [];
|
|
46
54
|
const circular = [];
|
|
47
55
|
const circularFiles = /* @__PURE__ */ new Set();
|
|
@@ -446,7 +454,10 @@ var DependencyChecker = class _DependencyChecker {
|
|
|
446
454
|
try {
|
|
447
455
|
const result = await safeSpawnAsync(cmd, [...prefix, ...buildMadgeArgs(normalized, projectRoot)], {
|
|
448
456
|
timeout: 15e3,
|
|
449
|
-
|
|
457
|
+
// A cache-only npx fallback must not read the project's `.npmrc`
|
|
458
|
+
// (#4268 acceptance 3); a resolved madge keeps the project cwd.
|
|
459
|
+
cwd: projectRoot,
|
|
460
|
+
...cmd === "npx" ? getIsolatedNpxSpawnOptions() : {}
|
|
450
461
|
});
|
|
451
462
|
if (result.error) {
|
|
452
463
|
this.log(`Check error: ${result.error.message}`);
|
|
@@ -661,7 +672,10 @@ var DependencyChecker = class _DependencyChecker {
|
|
|
661
672
|
const { cmd, prefix } = await this.resolveMadge(projectRoot);
|
|
662
673
|
const result = await safeSpawnAsync(cmd, [...prefix, ...buildMadgeArgs(projectRoot, projectRoot)], {
|
|
663
674
|
timeout: 3e4,
|
|
664
|
-
|
|
675
|
+
// A cache-only npx fallback must not read the project's `.npmrc`
|
|
676
|
+
// (#4268 acceptance 3); a resolved madge keeps the project cwd.
|
|
677
|
+
cwd: projectRoot,
|
|
678
|
+
...cmd === "npx" ? getIsolatedNpxSpawnOptions() : {}
|
|
665
679
|
});
|
|
666
680
|
if (result.error) {
|
|
667
681
|
this.log(`Scan error: ${result.error.message}`);
|
|
@@ -1,27 +1,23 @@
|
|
|
1
1
|
import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
resolveToolCwd
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-Q7DUK4LX.js";
|
|
5
5
|
import {
|
|
6
6
|
allAvailableGlobalBinDirs,
|
|
7
7
|
installArgs,
|
|
8
8
|
pmBinary,
|
|
9
9
|
resolveNodePackageManager
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import {
|
|
12
|
-
assertInstallAllowed,
|
|
13
|
-
projectTrustDenialReason
|
|
14
|
-
} from "./chunk-D6YF5HKX.js";
|
|
10
|
+
} from "./chunk-AW7R2GWG.js";
|
|
15
11
|
import {
|
|
16
12
|
probeToolAsync
|
|
17
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-RWWYJ623.js";
|
|
18
14
|
import {
|
|
19
15
|
TRANSIENT_MAX_COOLDOWN_MS,
|
|
20
16
|
classifyProbeFailure,
|
|
21
17
|
createAvailabilityLatch,
|
|
22
18
|
logAvailabilityDecision,
|
|
23
19
|
startHostStallSampler
|
|
24
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-VRZP76YM.js";
|
|
25
21
|
import {
|
|
26
22
|
acquireBoundedPidFileLock,
|
|
27
23
|
acquireQuarantinePidFileLock,
|
|
@@ -37,7 +33,11 @@ import {
|
|
|
37
33
|
safeSpawnAsync,
|
|
38
34
|
startGenerationHeartbeat,
|
|
39
35
|
tryAcquireGeneration
|
|
40
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-C34ZXZ7O.js";
|
|
37
|
+
import {
|
|
38
|
+
assertInstallAllowed,
|
|
39
|
+
projectTrustDenialReason
|
|
40
|
+
} from "./chunk-ZANLILYD.js";
|
|
41
41
|
import {
|
|
42
42
|
DEFAULT_MAX_OUTPUT_BYTES,
|
|
43
43
|
createBoundedOutputSink,
|
|
@@ -48,23 +48,23 @@ import {
|
|
|
48
48
|
getDegradationLedgerGeneration,
|
|
49
49
|
incrementDegradationCount,
|
|
50
50
|
recordDegradationOnce
|
|
51
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-JAU72XNY.js";
|
|
52
52
|
import {
|
|
53
53
|
logExtension
|
|
54
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-XTMJ7XDT.js";
|
|
55
55
|
import {
|
|
56
56
|
createNdjsonLogger,
|
|
57
57
|
getGlobalPiLensLogDir,
|
|
58
58
|
getMaxLogSizeMB,
|
|
59
59
|
isTestMode
|
|
60
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-AOHZU2BM.js";
|
|
61
61
|
import {
|
|
62
62
|
BoundedLruCache
|
|
63
63
|
} from "./chunk-ABBOA7UD.js";
|
|
64
64
|
import {
|
|
65
65
|
findLocalToolConfig,
|
|
66
66
|
isFullyQualified
|
|
67
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-N2H3ZPZY.js";
|
|
68
68
|
import {
|
|
69
69
|
__require
|
|
70
70
|
} from "./chunk-NXL4FFQQ.js";
|
|
@@ -4057,7 +4057,7 @@ async function stampInstallResolution(toolId) {
|
|
|
4057
4057
|
return;
|
|
4058
4058
|
try {
|
|
4059
4059
|
const resolutionId = lastInstallResolutionId.get(toolId);
|
|
4060
|
-
const refresh = await import("./chunk-
|
|
4060
|
+
const refresh = await import("./chunk-5UCAH366.js");
|
|
4061
4061
|
await refresh.stampManagedToolInstall(toolId, resolutionId);
|
|
4062
4062
|
} catch {
|
|
4063
4063
|
}
|
|
@@ -4070,7 +4070,7 @@ async function finishInstallAttempt(toolId, ok, startedAt) {
|
|
|
4070
4070
|
if (ok) {
|
|
4071
4071
|
resetSafeSpawnWindowsCommandCache();
|
|
4072
4072
|
try {
|
|
4073
|
-
const { resetMadgeManagedPathMemo } = await import("./chunk-
|
|
4073
|
+
const { resetMadgeManagedPathMemo } = await import("./chunk-EC47DWFA.js");
|
|
4074
4074
|
resetMadgeManagedPathMemo();
|
|
4075
4075
|
} catch (err) {
|
|
4076
4076
|
logSessionStart(`auto-install ${toolId}: madge memo reset failed: ${err.message}`);
|
|
@@ -4100,7 +4100,7 @@ async function installTool(toolId, ownsLock) {
|
|
|
4100
4100
|
return false;
|
|
4101
4101
|
const npmPath = await installNpmTool(tool.id, tool.packageName, tool.binaryName, tool.checkArgs, getToolVerificationTimeout(tool), packageEntryVerification(tool), ownsLock);
|
|
4102
4102
|
if (npmPath !== void 0) {
|
|
4103
|
-
await import("./chunk-
|
|
4103
|
+
await import("./chunk-5UCAH366.js").then((m) => m.stampManagedToolInstalled(tool.id, tool.packageName)).catch(() => {
|
|
4104
4104
|
});
|
|
4105
4105
|
}
|
|
4106
4106
|
return finishInstallAttempt(tool.id, npmPath !== void 0, startedAt);
|
|
@@ -2,27 +2,38 @@ import { createRequire as __pilensCreateRequire } from "node:module"; const requ
|
|
|
2
2
|
import {
|
|
3
3
|
createAvailabilityProbeFlight,
|
|
4
4
|
probeToolAsync
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-RWWYJ623.js";
|
|
6
6
|
import {
|
|
7
7
|
classifyProbeFailure,
|
|
8
8
|
createAvailabilityLatch,
|
|
9
9
|
isTransientDecision,
|
|
10
10
|
logAvailabilityDecision,
|
|
11
11
|
startHostStallSampler
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-VRZP76YM.js";
|
|
13
13
|
import {
|
|
14
14
|
createGenerationSource,
|
|
15
15
|
safeSpawnAsync
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-C34ZXZ7O.js";
|
|
17
|
+
import {
|
|
18
|
+
getProjectTrustState
|
|
19
|
+
} from "./chunk-ZANLILYD.js";
|
|
20
|
+
import {
|
|
21
|
+
recordDegradationOnce
|
|
22
|
+
} from "./chunk-JAU72XNY.js";
|
|
23
|
+
import {
|
|
24
|
+
logExtension
|
|
25
|
+
} from "./chunk-XTMJ7XDT.js";
|
|
17
26
|
import {
|
|
18
27
|
isAtOrAboveHomeDir,
|
|
28
|
+
isUnderDir,
|
|
19
29
|
walkUpDirs
|
|
20
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-N2H3ZPZY.js";
|
|
21
31
|
|
|
22
32
|
// dist/clients/package-manager.js
|
|
23
33
|
import * as fs from "node:fs";
|
|
24
34
|
import * as os from "node:os";
|
|
25
35
|
import * as path from "node:path";
|
|
36
|
+
import { resolve as resolvePath } from "node:path";
|
|
26
37
|
var PREFERENCE = [
|
|
27
38
|
"npm",
|
|
28
39
|
"pnpm",
|
|
@@ -254,6 +265,41 @@ var VENV_BIN_DIRS = [
|
|
|
254
265
|
path.join(".venv", "Scripts"),
|
|
255
266
|
path.join("venv", "Scripts")
|
|
256
267
|
];
|
|
268
|
+
var PROJECT_LOCAL_BIN_DIRS = [
|
|
269
|
+
...NODE_MODULES_BIN_DIRS,
|
|
270
|
+
...VENDOR_BIN_DIRS,
|
|
271
|
+
...VENV_BIN_DIRS
|
|
272
|
+
];
|
|
273
|
+
function localBinPath(value) {
|
|
274
|
+
return typeof value === "string" ? value : void 0;
|
|
275
|
+
}
|
|
276
|
+
function refuseLocalBin(tool, root) {
|
|
277
|
+
const trust = getProjectTrustState();
|
|
278
|
+
const resolvedRoot = resolvePath(root);
|
|
279
|
+
const subject = `project-local-binary:${resolvedRoot}:${tool}`;
|
|
280
|
+
if (recordDegradationOnce({
|
|
281
|
+
kind: "trust-refusal",
|
|
282
|
+
subject,
|
|
283
|
+
reason: `project-local binary refused: pi project trust is ${trust}`
|
|
284
|
+
})) {
|
|
285
|
+
logExtension({
|
|
286
|
+
subsystem: "project-trust",
|
|
287
|
+
level: "warn",
|
|
288
|
+
message: "project-local binary refused: mark the project trusted in pi or upgrade pi",
|
|
289
|
+
metadata: { tool, root: resolvedRoot, trust }
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
return { kind: "refused-by-trust", tool, root: resolvedRoot, trust };
|
|
293
|
+
}
|
|
294
|
+
function isProjectLocalBinPath(resolvedCommand, cwd) {
|
|
295
|
+
for (const ancestor of walkUpDirs(cwd)) {
|
|
296
|
+
if (isAtOrAboveHomeDir(ancestor, os.homedir()))
|
|
297
|
+
break;
|
|
298
|
+
if (PROJECT_LOCAL_BIN_DIRS.some((binDir) => isUnderDir(resolvedCommand, path.join(ancestor, binDir))))
|
|
299
|
+
return true;
|
|
300
|
+
}
|
|
301
|
+
return false;
|
|
302
|
+
}
|
|
257
303
|
function expandCandidateNames(tools, windowsExt, isWindows) {
|
|
258
304
|
return isWindows && windowsExt !== "" ? tools.flatMap((tool) => [`${tool}${windowsExt}`, tool]) : [...tools];
|
|
259
305
|
}
|
|
@@ -276,18 +322,27 @@ function* localBinMatches(tools, startDir, options) {
|
|
|
276
322
|
}
|
|
277
323
|
}
|
|
278
324
|
function findLocalBinUpwards(tool, startDir, options = {}) {
|
|
279
|
-
|
|
325
|
+
const match = localBinMatches([tool], startDir, options).next().value;
|
|
326
|
+
if (match === void 0 || options.ceiling === false)
|
|
327
|
+
return match;
|
|
328
|
+
if (getProjectTrustState() !== "trusted")
|
|
329
|
+
return refuseLocalBin(tool, startDir);
|
|
330
|
+
return match;
|
|
280
331
|
}
|
|
281
332
|
function findLocalBinsAt(tools, dir, options = {}) {
|
|
282
333
|
const { windowsExt = ".cmd", binDirs = NODE_MODULES_BIN_DIRS, isWindows = onWindows() } = options;
|
|
283
334
|
const names = expandCandidateNames(tools, windowsExt, isWindows);
|
|
284
|
-
|
|
335
|
+
const matches = [...matchesInDir(path.resolve(dir), names, binDirs)];
|
|
336
|
+
if (matches.length === 0 || getProjectTrustState() === "trusted")
|
|
337
|
+
return matches;
|
|
338
|
+
return [refuseLocalBin(tools.join(","), dir)];
|
|
285
339
|
}
|
|
286
340
|
function findLocalBinAt(tool, dir, options = {}) {
|
|
287
|
-
|
|
341
|
+
const match = findLocalBinsAt([tool], dir, options)[0];
|
|
342
|
+
return match;
|
|
288
343
|
}
|
|
289
344
|
async function findNodeToolBinary(tool, cwd, windowsExt = ".cmd") {
|
|
290
|
-
return findLocalBinUpwards(tool, cwd, { windowsExt }) ?? await findGlobalBinary(tool, windowsExt);
|
|
345
|
+
return localBinPath(findLocalBinUpwards(tool, cwd, { windowsExt })) ?? await findGlobalBinary(tool, windowsExt);
|
|
291
346
|
}
|
|
292
347
|
|
|
293
348
|
export {
|
|
@@ -301,6 +356,8 @@ export {
|
|
|
301
356
|
findGlobalBinary,
|
|
302
357
|
VENDOR_BIN_DIRS,
|
|
303
358
|
VENV_BIN_DIRS,
|
|
359
|
+
localBinPath,
|
|
360
|
+
isProjectLocalBinPath,
|
|
304
361
|
findLocalBinUpwards,
|
|
305
362
|
findLocalBinsAt,
|
|
306
363
|
findLocalBinAt,
|
|
@@ -7,19 +7,20 @@ import {
|
|
|
7
7
|
loadCallGraph,
|
|
8
8
|
parseSymbolKey,
|
|
9
9
|
saveCallGraph
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-WOA4LN2R.js";
|
|
11
11
|
import "./chunk-3MED75HT.js";
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-C34ZXZ7O.js";
|
|
13
|
+
import "./chunk-2BBLFX75.js";
|
|
14
|
+
import "./chunk-XVF2VVXP.js";
|
|
15
15
|
import "./chunk-2EECBNC5.js";
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-JAU72XNY.js";
|
|
17
|
+
import "./chunk-XTMJ7XDT.js";
|
|
18
|
+
import "./chunk-JMYYOTQG.js";
|
|
19
|
+
import "./chunk-QQNQ7SJW.js";
|
|
20
|
+
import "./chunk-AOHZU2BM.js";
|
|
20
21
|
import "./chunk-LJDODBBZ.js";
|
|
21
22
|
import "./chunk-ABBOA7UD.js";
|
|
22
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-N2H3ZPZY.js";
|
|
23
24
|
import "./chunk-NXL4FFQQ.js";
|
|
24
25
|
export {
|
|
25
26
|
CALL_GRAPH_CACHE_VERSION,
|
|
@@ -3,22 +3,23 @@ import {
|
|
|
3
3
|
RustClient,
|
|
4
4
|
resetRustAvailability,
|
|
5
5
|
rustClient
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-MRXKYPCS.js";
|
|
7
|
+
import "./chunk-7DYBLXYA.js";
|
|
8
|
+
import "./chunk-RWWYJ623.js";
|
|
9
|
+
import "./chunk-VRZP76YM.js";
|
|
10
|
+
import "./chunk-C34ZXZ7O.js";
|
|
11
11
|
import "./chunk-BW5KFIQC.js";
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-2BBLFX75.js";
|
|
13
|
+
import "./chunk-XVF2VVXP.js";
|
|
14
14
|
import "./chunk-2EECBNC5.js";
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-JAU72XNY.js";
|
|
16
|
+
import "./chunk-XTMJ7XDT.js";
|
|
17
|
+
import "./chunk-JMYYOTQG.js";
|
|
18
|
+
import "./chunk-QQNQ7SJW.js";
|
|
19
|
+
import "./chunk-AOHZU2BM.js";
|
|
19
20
|
import "./chunk-LJDODBBZ.js";
|
|
20
21
|
import "./chunk-ABBOA7UD.js";
|
|
21
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-N2H3ZPZY.js";
|
|
22
23
|
import "./chunk-NXL4FFQQ.js";
|
|
23
24
|
export {
|
|
24
25
|
RustClient,
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
reportPiLensConfigRecords,
|
|
13
13
|
resolveOnePiLensConfigDocument,
|
|
14
14
|
warnIgnoredConfigOnce
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-2BBLFX75.js";
|
|
16
16
|
import {
|
|
17
17
|
CANONICAL_GLOBAL_CONFIG_FILE,
|
|
18
18
|
FRESHNESS_CADENCE_MS,
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
errorClassName,
|
|
23
23
|
getPiLensGlobalConfigPath,
|
|
24
24
|
getProductionGlobalConfigResolution
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-XVF2VVXP.js";
|
|
26
26
|
import {
|
|
27
27
|
DEFAULT_MAX_OUTPUT_BYTES,
|
|
28
28
|
createBoundedOutputSink,
|
|
@@ -42,16 +42,16 @@ import {
|
|
|
42
42
|
readToolConfig,
|
|
43
43
|
recordDegradation,
|
|
44
44
|
recordDegradationOnce
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-JAU72XNY.js";
|
|
46
46
|
import {
|
|
47
47
|
logExtension
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-XTMJ7XDT.js";
|
|
49
49
|
import {
|
|
50
50
|
logLatency
|
|
51
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-QQNQ7SJW.js";
|
|
52
52
|
import {
|
|
53
53
|
getProcessSingleton
|
|
54
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-AOHZU2BM.js";
|
|
55
55
|
import {
|
|
56
56
|
sweepOwnStagingFiles
|
|
57
57
|
} from "./chunk-LJDODBBZ.js";
|
|
@@ -71,7 +71,7 @@ import {
|
|
|
71
71
|
normalizeLoggedPath,
|
|
72
72
|
normalizeMapKey,
|
|
73
73
|
toProjectRelativePath
|
|
74
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-N2H3ZPZY.js";
|
|
75
75
|
import {
|
|
76
76
|
__commonJS,
|
|
77
77
|
__require,
|
|
@@ -1744,6 +1744,15 @@ function loadPiLensGlobalConfig(configPath) {
|
|
|
1744
1744
|
warnInvalid("actionableWarnings.autoFix.maxFixes must be a non-negative finite number");
|
|
1745
1745
|
}
|
|
1746
1746
|
}
|
|
1747
|
+
const contextInjection = asConfigObject(raw.contextInjection);
|
|
1748
|
+
if (contextInjection && "requirePreExistingFixes" in contextInjection) {
|
|
1749
|
+
if (typeof contextInjection.requirePreExistingFixes === "boolean") {
|
|
1750
|
+
config.contextInjection ??= {};
|
|
1751
|
+
config.contextInjection.requirePreExistingFixes = contextInjection.requirePreExistingFixes;
|
|
1752
|
+
} else {
|
|
1753
|
+
warnInvalid("contextInjection.requirePreExistingFixes must be a boolean");
|
|
1754
|
+
}
|
|
1755
|
+
}
|
|
1747
1756
|
const widget = asConfigObject(raw.widget);
|
|
1748
1757
|
if (widget) {
|
|
1749
1758
|
if (typeof widget.visible === "boolean") {
|
|
@@ -1876,6 +1885,17 @@ function classifyTmpDir(dir) {
|
|
|
1876
1885
|
function ephemeralStagingRoot(filePath) {
|
|
1877
1886
|
return classifyTmpDir(path6.dirname(path6.resolve(filePath))).stagingRoot;
|
|
1878
1887
|
}
|
|
1888
|
+
function isPiOwnedTempPath(filePath) {
|
|
1889
|
+
const tmpRoot = realPathOfNearestExisting(os.tmpdir());
|
|
1890
|
+
const real = realPathOfNearestExisting(filePath);
|
|
1891
|
+
if (!isUnderDir(real, tmpRoot))
|
|
1892
|
+
return false;
|
|
1893
|
+
const relative3 = path6.relative(tmpRoot, real);
|
|
1894
|
+
if (relative3.length === 0 || path6.isAbsolute(relative3))
|
|
1895
|
+
return false;
|
|
1896
|
+
const segments = relative3.split(path6.sep);
|
|
1897
|
+
return segments.length === 1 || /^pi-/i.test(segments[0] ?? "");
|
|
1898
|
+
}
|
|
1879
1899
|
function isEphemeralCheckoutRoot(dir) {
|
|
1880
1900
|
return classifyTmpDir(dir).checkout;
|
|
1881
1901
|
}
|
|
@@ -2049,6 +2069,21 @@ function getGlobalPiLensDir() {
|
|
|
2049
2069
|
return path7.resolve(override);
|
|
2050
2070
|
return path7.join(os2.homedir(), ".pi-lens");
|
|
2051
2071
|
}
|
|
2072
|
+
function isPiLensInternalPath(filePath, projectRoot) {
|
|
2073
|
+
const absolute = path7.resolve(filePath);
|
|
2074
|
+
const home = path7.resolve(os2.homedir());
|
|
2075
|
+
const candidates = [
|
|
2076
|
+
getGlobalPiLensDir(),
|
|
2077
|
+
getProjectDataDir(projectRoot),
|
|
2078
|
+
path7.join(home, ".pi"),
|
|
2079
|
+
path7.join(home, ".pi-lens")
|
|
2080
|
+
];
|
|
2081
|
+
if (candidates.some((dir) => isUnderDir(absolute, dir)))
|
|
2082
|
+
return true;
|
|
2083
|
+
if (isPiOwnedTempPath(absolute))
|
|
2084
|
+
return true;
|
|
2085
|
+
return false;
|
|
2086
|
+
}
|
|
2052
2087
|
var EXCLUDED_DIRS = [
|
|
2053
2088
|
"node_modules",
|
|
2054
2089
|
".git",
|
|
@@ -4592,8 +4627,16 @@ function resolveWindowsCommandForEnvironment(command, cwd, env) {
|
|
|
4592
4627
|
function resolveWindowsCommand(command, cwd, env) {
|
|
4593
4628
|
return resolveWindowsCommandForEnvironment(command, cwd, env);
|
|
4594
4629
|
}
|
|
4595
|
-
function getSpawnEnvironment(overrides) {
|
|
4596
|
-
|
|
4630
|
+
function getSpawnEnvironment(overrides, stripNpmConfig) {
|
|
4631
|
+
const merged = process.platform === "win32" ? mergeWindowsEnvironment(process.env, overrides) : { ...process.env, ...overrides };
|
|
4632
|
+
if (!stripNpmConfig)
|
|
4633
|
+
return merged;
|
|
4634
|
+
const stripped = {};
|
|
4635
|
+
for (const [key, value] of Object.entries(merged)) {
|
|
4636
|
+
if (!/^npm_config_/i.test(key))
|
|
4637
|
+
stripped[key] = value;
|
|
4638
|
+
}
|
|
4639
|
+
return stripped;
|
|
4597
4640
|
}
|
|
4598
4641
|
var CMD_UNSAFE_CHARS = /["%!\r\n]/;
|
|
4599
4642
|
function findCmdUnsafeValue(command, args) {
|
|
@@ -4786,7 +4829,7 @@ async function safeSpawnAsync(command, args, options) {
|
|
|
4786
4829
|
}
|
|
4787
4830
|
};
|
|
4788
4831
|
const isWindows2 = process.platform === "win32";
|
|
4789
|
-
const spawnEnv = getSpawnEnvironment(options?.env);
|
|
4832
|
+
const spawnEnv = getSpawnEnvironment(options?.env, options?.stripNpmConfig);
|
|
4790
4833
|
const spawnCwd = isWindows2 ? resolveEffectiveWindowsCwd(options?.cwd, spawnEnv) ?? options?.cwd : options?.cwd;
|
|
4791
4834
|
let spawnCmd = command;
|
|
4792
4835
|
let spawnArgs = args;
|
|
@@ -5270,7 +5313,7 @@ async function findCommandAsync(command) {
|
|
|
5270
5313
|
return result.stdout.trim().split("\n")[0] || null;
|
|
5271
5314
|
}
|
|
5272
5315
|
function safeSpawn(command, args, options) {
|
|
5273
|
-
const spawnEnv = getSpawnEnvironment(options?.env);
|
|
5316
|
+
const spawnEnv = getSpawnEnvironment(options?.env, options?.stripNpmConfig);
|
|
5274
5317
|
if (process.platform === "win32") {
|
|
5275
5318
|
const spawnCwd = resolveEffectiveWindowsCwd(options?.cwd, spawnEnv) ?? options?.cwd;
|
|
5276
5319
|
const resolved = resolveWindowsCommand(command, options?.cwd, spawnEnv);
|
|
@@ -5439,6 +5482,7 @@ export {
|
|
|
5439
5482
|
drainProjectDataDirMigrations,
|
|
5440
5483
|
displayProjectDataPath,
|
|
5441
5484
|
getGlobalPiLensDir,
|
|
5485
|
+
isPiLensInternalPath,
|
|
5442
5486
|
EXCLUDED_DIRS,
|
|
5443
5487
|
getProjectIgnoreMatcher,
|
|
5444
5488
|
isPathIgnoredByProject,
|