pi-lens 4.4.0 → 4.4.2
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 +158 -0
- package/README.md +1 -0
- package/config/dependency-cruiser-eager-allowlist.json +3 -1
- package/dist/{chunk-IXEBJSUE.js → chunk-23WOO7TX.js} +11 -10
- package/dist/{chunk-E2WFBRHM.js → chunk-2B73ZPOK.js} +3 -3
- package/dist/{chunk-DQ2NZ7C4.js → chunk-2BBLFX75.js} +139 -11
- package/dist/{chunk-ZMOL6RQC.js → chunk-2CD5RS6M.js} +2 -2
- package/dist/{chunk-VD4JQCQC.js → chunk-2ZGIZPDG.js} +38 -37
- package/dist/{chunk-DIULIWKU.js → chunk-34WSVGEM.js} +29 -3
- package/dist/chunk-3JNKMP3B.js +17 -0
- package/dist/{chunk-HVUZXSWK.js → chunk-3UUPUE3O.js} +45 -41
- package/dist/{chunk-5RXBNSW2.js → chunk-3VPVG5SU.js} +16 -8
- package/dist/chunk-3WA4HP4I.js +55 -0
- package/dist/chunk-466Z26MG.js +30 -0
- package/dist/{chunk-34U7PLGE.js → chunk-4UNXBNE2.js} +12 -11
- package/dist/{chunk-E4MAEDPM.js → chunk-4W4VLAPJ.js} +12 -11
- package/dist/{chunk-GUOGVTCQ.js → chunk-52FUZI6K.js} +4 -2
- package/dist/chunk-5JM2524W.js +84 -0
- package/dist/{chunk-VHQLPIRJ.js → chunk-5NGR67U5.js} +2 -2
- package/dist/{chunk-DFVMIKMQ.js → chunk-66SXUJCA.js} +45 -9
- package/dist/{chunk-OQGFCZJ4.js → chunk-66VMUL7Q.js} +16 -16
- package/dist/{chunk-HWBZIGMJ.js → chunk-67WMNWEE.js} +9 -8
- package/dist/{chunk-6QIUX4EP.js → chunk-6C7JWPCP.js} +7 -7
- package/dist/{chunk-47D2BO4S.js → chunk-6GFRNVYR.js} +11 -10
- package/dist/{chunk-ZAWW3AF6.js → chunk-6SDEP3AJ.js} +9 -8
- package/dist/{chunk-TGPXLY2J.js → chunk-724UL2TJ.js} +38 -2
- package/dist/{chunk-YLF3PPT5.js → chunk-76MWC2K6.js} +3 -3
- package/dist/{chunk-F3P7VQ7H.js → chunk-7DYBLXYA.js} +3 -3
- package/dist/{chunk-AJ3QXTRQ.js → chunk-7ULNCDCO.js} +37 -35
- package/dist/{chunk-UK3CMEAL.js → chunk-AOHZU2BM.js} +1 -1
- package/dist/{chunk-F3AU2TMM.js → chunk-ARJ6PLFH.js} +44 -28
- package/dist/{chunk-U3VGR4VU.js → chunk-AW7R2GWG.js} +65 -8
- package/dist/{chunk-FJNKANOS.js → chunk-BKE7E7TC.js} +10 -9
- package/dist/{chunk-4W2PLC4J.js → chunk-BRGDSBJE.js} +13 -12
- package/dist/{chunk-VN2AXLEX.js → chunk-C34ZXZ7O.js} +102 -16
- package/dist/{chunk-T4ERT73Y.js → chunk-CF24OIYI.js} +21 -20
- package/dist/{chunk-NMABWBZN.js → chunk-CHOW74WE.js} +1 -1
- package/dist/{chunk-ARFCXG7S.js → chunk-CO2G5PHH.js} +2 -2
- package/dist/{chunk-AS44CFQ4.js → chunk-EETY4LF7.js} +24 -10
- package/dist/{chunk-I3R7GKDR.js → chunk-EJIUXPBX.js} +1 -1
- package/dist/{chunk-B3I2UUT4.js → chunk-ESBQHFMJ.js} +653 -251
- package/dist/{chunk-O5WILGMI.js → chunk-FLKWCIZH.js} +8 -5
- package/dist/{chunk-LNAKEO63.js → chunk-GAEGEPOC.js} +4 -4
- package/dist/{chunk-V7R425XG.js → chunk-GBPP5P7X.js} +4 -4
- package/dist/{chunk-XK4CIILI.js → chunk-GHB6AYCP.js} +27 -26
- package/dist/{chunk-7FBF7NPR.js → chunk-GOYRYZ2R.js} +29 -26
- package/dist/{chunk-JOLITGCC.js → chunk-GXW6K4YJ.js} +1 -1
- package/dist/{chunk-NXPS2L6U.js → chunk-GZYBXISR.js} +9 -9
- package/dist/{chunk-OAXNDZJ7.js → chunk-IBGIOBEE.js} +8 -4
- package/dist/{chunk-IIXOAGHR.js → chunk-IBRALRBR.js} +19 -15
- package/dist/{chunk-7F72PXY2.js → chunk-IXXDFY73.js} +3 -3
- package/dist/chunk-IZSHAIJ7.js +26 -0
- package/dist/{chunk-N3YQJI6O.js → chunk-JAU72XNY.js} +20 -15
- package/dist/chunk-JMYYOTQG.js +77 -0
- package/dist/{chunk-NL5GLMFI.js → chunk-JSQFTSC6.js} +12 -11
- package/dist/{chunk-IVP5KAB7.js → chunk-JWA5I3SR.js} +35 -21
- package/dist/{chunk-Y4T27COV.js → chunk-KBG47GHP.js} +4 -4
- package/dist/{chunk-PWFHBTSF.js → chunk-L3BLXZG7.js} +2 -2
- package/dist/chunk-LOP6GRPH.js +31 -0
- package/dist/chunk-MQLUAEOC.js +162 -0
- package/dist/{chunk-RPD5K5NC.js → chunk-MRXKYPCS.js} +2 -2
- package/dist/{chunk-Q5U6FMDI.js → chunk-N2H3ZPZY.js} +59 -7
- package/dist/{chunk-27BBHSZC.js → chunk-N3X6Q4YT.js} +3 -3
- package/dist/{chunk-UY752QSN.js → chunk-NW7BOILN.js} +19 -17
- package/dist/{chunk-TLGFBM3F.js → chunk-ODBNXWT4.js} +302 -113
- package/dist/{chunk-TT22N74J.js → chunk-OG5UUPN7.js} +13 -13
- package/dist/{chunk-C2AUYXQH.js → chunk-OXXKQCSV.js} +6 -6
- package/dist/{chunk-PAK6IDME.js → chunk-P7266HLM.js} +2 -2
- package/dist/{chunk-52H5B5TC.js → chunk-PFNSLWU5.js} +31 -30
- package/dist/{chunk-5ZEJHV35.js → chunk-PHDMFAKM.js} +12 -2
- package/dist/{chunk-3I5QFT3N.js → chunk-PNQDPDRC.js} +6 -3
- package/dist/{chunk-TVN5N6GY.js → chunk-PV6LR5P5.js} +6057 -1311
- package/dist/{chunk-AHDW3GPE.js → chunk-Q6ZWTCLY.js} +24 -22
- package/dist/{chunk-RUOG5D2C.js → chunk-Q7DUK4LX.js} +5 -5
- package/dist/{chunk-YSNFMJKN.js → chunk-QGQ5CCCG.js} +2 -2
- package/dist/{chunk-LW6XKDZQ.js → chunk-QHJ6DQ2R.js} +287 -38
- package/dist/{chunk-GVXA6CCE.js → chunk-QILIYSJF.js} +1 -1
- package/dist/{chunk-22AVIGXS.js → chunk-QOBUHWHX.js} +12 -7
- package/dist/{chunk-5THXD6X5.js → chunk-QQNQ7SJW.js} +2 -75
- package/dist/{chunk-4RERDEXR.js → chunk-QZVW3AAK.js} +50 -41
- package/dist/{chunk-AWE5TMPO.js → chunk-R3PCY3YS.js} +14 -13
- package/dist/{chunk-HHYAELLJ.js → chunk-RPLINGVB.js} +7 -7
- package/dist/{chunk-EOKRQ3SA.js → chunk-RWWYJ623.js} +10 -1
- package/dist/{chunk-YGVYKNSN.js → chunk-SAEFPSB6.js} +59 -12
- package/dist/{chunk-K6VYLB2U.js → chunk-TYM6OUIT.js} +13 -12
- package/dist/{chunk-AJXODZY6.js → chunk-UXGETRP4.js} +13 -12
- package/dist/{chunk-I7SPGOWI.js → chunk-UZ3TUTRV.js} +1 -1
- package/dist/{chunk-TO6WL3GM.js → chunk-VCHXCQFG.js} +12 -2
- package/dist/{chunk-BRJKOBZP.js → chunk-VITUCP5A.js} +17 -6
- package/dist/{chunk-WONERJTP.js → chunk-VRZP76YM.js} +1 -1
- package/dist/{chunk-OS32RNR2.js → chunk-VSSBEUFT.js} +16 -15
- package/dist/{chunk-VDBPVIKD.js → chunk-VWCXW2E7.js} +1 -1
- package/dist/{chunk-NKOUFPQF.js → chunk-WOA4LN2R.js} +2 -2
- package/dist/{chunk-RIISMHKN.js → chunk-WOKKRCJ5.js} +15 -13
- package/dist/{chunk-XECLWQZN.js → chunk-WU567RSC.js} +13 -10
- package/dist/{chunk-V5PXFSZK.js → chunk-XCJN5IJU.js} +4 -4
- package/dist/{chunk-ORTMY4Q4.js → chunk-XKIZ2HNN.js} +22 -14
- package/dist/{chunk-6VCD4VKZ.js → chunk-XMSXXAHW.js} +2 -2
- package/dist/chunk-XPZPXCBV.js +28 -0
- package/dist/{chunk-O6TQT6RI.js → chunk-XTMJ7XDT.js} +1 -1
- package/dist/{chunk-VNMT7C64.js → chunk-XVF2VVXP.js} +5 -3
- package/dist/chunk-Z527N6YQ.js +28 -0
- package/dist/{chunk-NTUJEGDZ.js → chunk-ZANLILYD.js} +22 -2
- package/dist/{chunk-6P62QVEA.js → chunk-ZGDGW2V3.js} +2 -2
- package/dist/{chunk-ODEEOXPH.js → chunk-ZHFZWTZV.js} +12 -11
- package/dist/{chunk-AJVLWNFN.js → chunk-ZXYDQ3TZ.js} +5 -5
- package/dist/index.js +102097 -97778
- package/dist/mcp/analyze-cli.js +18 -8
- package/dist/mcp/cli.js +48 -37
- package/dist/mcp/server.js +695 -426
- package/dist/mcp/worker.js +66 -55
- package/dist/probes/installer.js +20 -19
- package/docs/ast-grep_rules_catalog.md +2 -2
- package/docs/astplayground.md +1 -1
- package/docs/configuration.md +38 -2
- package/docs/custom-rules.md +25 -2
- package/docs/dependencies.md +3 -0
- package/docs/environment-variables.md +34 -6
- package/docs/features.md +39 -3
- package/docs/globalconfig.md +3 -1
- package/docs/language-coverage.md +2 -1
- package/docs/lsp-capability-matrix.md +29 -6
- package/docs/lsp-idle-eviction.md +38 -47
- package/docs/pi-lens-fixer.md +13 -5
- package/docs/pi-lens-merge-policy.md +48 -1
- package/docs/pi-lens-monitor.md +3 -1
- package/docs/pi-lens-retro.md +2 -1
- package/docs/pi-lens-reviewer.md +19 -3
- package/docs/pi-lens-subagent.md +2 -0
- package/docs/real-harness.md +17 -0
- package/docs/schema/pi-lens-config-v1.json +565 -0
- package/docs/servercapabilities.md +18 -4
- package/docs/settings.md +2 -1
- package/docs/word-index.md +6 -0
- package/package.json +1 -1
- package/rules/ast-grep-rules/rule-tests/no-identity-operator-on-literals-test.yml +12 -2
- package/rules/ast-grep-rules/rule-tests/throw-new-error-js-test.yml +2 -0
- package/rules/ast-grep-rules/rule-tests/throw-new-error-test.yml +2 -0
- package/rules/ast-grep-rules/rules/no-identity-operator-on-literals.yml +20 -12
- package/rules/ast-grep-rules/rules/throw-new-error-js.yml +2 -2
- package/rules/ast-grep-rules/rules/throw-new-error.yml +2 -2
- package/dist/chunk-54B42YRX.js +0 -27
- package/dist/chunk-CGGAIP7J.js +0 -29
- package/dist/chunk-D6QS3U6M.js +0 -30
- package/dist/chunk-HMFXILPV.js +0 -83
- package/dist/chunk-LSMJ6KBE.js +0 -4139
- package/dist/chunk-NTHH2J74.js +0 -27
- package/dist/chunk-RPD4ZSB7.js +0 -25
- package/dist/chunk-T6D4Q4AQ.js +0 -54
- package/dist/chunk-VCSRSYLF.js +0 -81
|
@@ -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-NTUJEGDZ.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-CF24OIYI.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-3WA4HP4I.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-CF24OIYI.js").then((m) => m.stampManagedToolInstalled(tool.id, tool.packageName)).catch(() => {
|
|
4104
4104
|
});
|
|
4105
4105
|
}
|
|
4106
4106
|
return finishInstallAttempt(tool.id, npmPath !== void 0, startedAt);
|
|
@@ -23,17 +23,18 @@ import {
|
|
|
23
23
|
safeSpawnAsync,
|
|
24
24
|
safeSpawnBatch,
|
|
25
25
|
setAmbientAbortSignal
|
|
26
|
-
} from "./chunk-
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
26
|
+
} from "./chunk-C34ZXZ7O.js";
|
|
27
|
+
import "./chunk-2BBLFX75.js";
|
|
28
|
+
import "./chunk-XVF2VVXP.js";
|
|
29
29
|
import "./chunk-2EECBNC5.js";
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-
|
|
33
|
-
import "./chunk-
|
|
30
|
+
import "./chunk-JAU72XNY.js";
|
|
31
|
+
import "./chunk-XTMJ7XDT.js";
|
|
32
|
+
import "./chunk-JMYYOTQG.js";
|
|
33
|
+
import "./chunk-QQNQ7SJW.js";
|
|
34
|
+
import "./chunk-AOHZU2BM.js";
|
|
34
35
|
import "./chunk-LJDODBBZ.js";
|
|
35
36
|
import "./chunk-ABBOA7UD.js";
|
|
36
|
-
import "./chunk-
|
|
37
|
+
import "./chunk-N2H3ZPZY.js";
|
|
37
38
|
import "./chunk-NXL4FFQQ.js";
|
|
38
39
|
export {
|
|
39
40
|
SpawnFailureError,
|
|
@@ -3,31 +3,31 @@ import {
|
|
|
3
3
|
shouldRecurseIntoDir,
|
|
4
4
|
walkTreeRecursiveSync,
|
|
5
5
|
walkTreeStackAsync
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-5NGR67U5.js";
|
|
7
7
|
import {
|
|
8
8
|
getProjectIgnoreMatcher
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-C34ZXZ7O.js";
|
|
10
10
|
import {
|
|
11
11
|
KIND_EXTENSIONS,
|
|
12
12
|
isCodeKindFile
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-PHDMFAKM.js";
|
|
14
14
|
import {
|
|
15
15
|
classifyGeneratedOrArtifactDetailed,
|
|
16
16
|
isDeclarationFile
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-2BBLFX75.js";
|
|
18
18
|
import {
|
|
19
19
|
logLatency
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-QQNQ7SJW.js";
|
|
21
21
|
import {
|
|
22
22
|
toPositiveFinite
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-AOHZU2BM.js";
|
|
24
24
|
import {
|
|
25
25
|
BoundedLruCache
|
|
26
26
|
} from "./chunk-ABBOA7UD.js";
|
|
27
27
|
import {
|
|
28
28
|
normalizeEphemeralMapKey,
|
|
29
29
|
normalizeFilePath
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-N2H3ZPZY.js";
|
|
31
31
|
|
|
32
32
|
// dist/clients/source-filter.js
|
|
33
33
|
import * as fs2 from "node:fs";
|
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
parseSymbolKey
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-WOA4LN2R.js";
|
|
5
5
|
import {
|
|
6
6
|
isTestRoleCollateral
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-EJIUXPBX.js";
|
|
8
8
|
import "./chunk-3MED75HT.js";
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-C34ZXZ7O.js";
|
|
10
|
+
import "./chunk-2BBLFX75.js";
|
|
11
|
+
import "./chunk-XVF2VVXP.js";
|
|
12
12
|
import "./chunk-2EECBNC5.js";
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-JAU72XNY.js";
|
|
14
|
+
import "./chunk-XTMJ7XDT.js";
|
|
15
|
+
import "./chunk-JMYYOTQG.js";
|
|
16
|
+
import "./chunk-QQNQ7SJW.js";
|
|
17
|
+
import "./chunk-AOHZU2BM.js";
|
|
17
18
|
import "./chunk-LJDODBBZ.js";
|
|
18
19
|
import "./chunk-ABBOA7UD.js";
|
|
19
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-N2H3ZPZY.js";
|
|
20
21
|
import "./chunk-NXL4FFQQ.js";
|
|
21
22
|
|
|
22
23
|
// dist/clients/project-diagnostics/runner-adapters/call-graph-impact.js
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
getProjectDataDir
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-C34ZXZ7O.js";
|
|
5
|
+
import "./chunk-2BBLFX75.js";
|
|
6
|
+
import "./chunk-XVF2VVXP.js";
|
|
7
7
|
import "./chunk-2EECBNC5.js";
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-JAU72XNY.js";
|
|
9
|
+
import "./chunk-XTMJ7XDT.js";
|
|
10
|
+
import "./chunk-JMYYOTQG.js";
|
|
11
|
+
import "./chunk-QQNQ7SJW.js";
|
|
11
12
|
import {
|
|
12
13
|
redactSecrets
|
|
13
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-AOHZU2BM.js";
|
|
14
15
|
import "./chunk-LJDODBBZ.js";
|
|
15
16
|
import "./chunk-ABBOA7UD.js";
|
|
16
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-N2H3ZPZY.js";
|
|
17
18
|
import "./chunk-NXL4FFQQ.js";
|
|
18
19
|
|
|
19
20
|
// dist/clients/fix-worklog.js
|
|
@@ -1,7 +1,39 @@
|
|
|
1
1
|
import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
getGlobalPiLensDir
|
|
4
|
+
} from "./chunk-C34ZXZ7O.js";
|
|
2
5
|
import {
|
|
3
6
|
SPECIAL_FILENAMES
|
|
4
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-PHDMFAKM.js";
|
|
8
|
+
import {
|
|
9
|
+
getTurnId
|
|
10
|
+
} from "./chunk-AOHZU2BM.js";
|
|
11
|
+
import {
|
|
12
|
+
BoundedFifoMap
|
|
13
|
+
} from "./chunk-ABBOA7UD.js";
|
|
14
|
+
|
|
15
|
+
// dist/clients/custom-rule-locations.js
|
|
16
|
+
import * as path from "node:path";
|
|
17
|
+
function getUserRuleRoot() {
|
|
18
|
+
return path.join(getGlobalPiLensDir(), "rules");
|
|
19
|
+
}
|
|
20
|
+
var RULE_CORPUS_CYCLE_ENTRIES = 16;
|
|
21
|
+
var ruleCorpusCycleFingerprints = new BoundedFifoMap(RULE_CORPUS_CYCLE_ENTRIES);
|
|
22
|
+
var cycleSlot;
|
|
23
|
+
function ruleCorpusFingerprintForCycle(family, root, compute, force = false) {
|
|
24
|
+
const cycle = getTurnId();
|
|
25
|
+
if (!force && cycleSlot !== void 0 && cycleSlot.cycle === cycle && cycleSlot.family === family && cycleSlot.root === root) {
|
|
26
|
+
return cycleSlot.fingerprint;
|
|
27
|
+
}
|
|
28
|
+
const key = `${cycle}\0${family}\0${root}`;
|
|
29
|
+
let fingerprint = force ? void 0 : ruleCorpusCycleFingerprints.get(key);
|
|
30
|
+
if (fingerprint === void 0) {
|
|
31
|
+
fingerprint = compute(root);
|
|
32
|
+
ruleCorpusCycleFingerprints.set(key, fingerprint);
|
|
33
|
+
}
|
|
34
|
+
cycleSlot = { cycle, family, root, fingerprint };
|
|
35
|
+
return fingerprint;
|
|
36
|
+
}
|
|
5
37
|
|
|
6
38
|
// dist/clients/language-registry.js
|
|
7
39
|
var LANGUAGES = [
|
|
@@ -148,6 +180,7 @@ var LANGUAGES = [
|
|
|
148
180
|
extensions: [".kt", ".kts"],
|
|
149
181
|
grammar: "kotlin"
|
|
150
182
|
},
|
|
183
|
+
{ id: "lean", kind: "lean", extensions: [".lean"] },
|
|
151
184
|
{ id: "less", kind: "css", extensions: [".less"] },
|
|
152
185
|
{ id: "lua", kind: "lua", extensions: [".lua"], grammar: "lua" },
|
|
153
186
|
{ id: "markdown", kind: "markdown", extensions: [".md", ".mdx"] },
|
|
@@ -377,10 +410,13 @@ var SCAN_LANGUAGE_PRIORITY = [
|
|
|
377
410
|
["json", "jsonc"],
|
|
378
411
|
["yaml"],
|
|
379
412
|
["toml"],
|
|
380
|
-
["prisma"]
|
|
413
|
+
["prisma"],
|
|
414
|
+
["lean"]
|
|
381
415
|
];
|
|
382
416
|
|
|
383
417
|
export {
|
|
418
|
+
getUserRuleRoot,
|
|
419
|
+
ruleCorpusFingerprintForCycle,
|
|
384
420
|
extensionsForLanguage,
|
|
385
421
|
extensionsForLanguageToken,
|
|
386
422
|
resolveLanguage,
|
|
@@ -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 = [
|
|
@@ -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,75 +4,77 @@ import {
|
|
|
4
4
|
} from "./chunk-7U2IDNXN.js";
|
|
5
5
|
import {
|
|
6
6
|
formatToolFailure
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-2CD5RS6M.js";
|
|
8
8
|
import {
|
|
9
9
|
spawnFailedWithNoOutput
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-UZ3TUTRV.js";
|
|
11
11
|
import {
|
|
12
12
|
createAvailabilityChecker,
|
|
13
13
|
findManagedNodeToolBinary,
|
|
14
14
|
getManagedToolEnvironment,
|
|
15
15
|
resolveAvailableOrInstall
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import "./chunk-
|
|
16
|
+
} from "./chunk-GOYRYZ2R.js";
|
|
17
|
+
import "./chunk-RPLINGVB.js";
|
|
18
18
|
import {
|
|
19
19
|
canonicalDirectory,
|
|
20
20
|
listNestedLinkedWorktreeRoots
|
|
21
|
-
} from "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
21
|
+
} from "./chunk-PNQDPDRC.js";
|
|
22
|
+
import "./chunk-ESBQHFMJ.js";
|
|
23
|
+
import "./chunk-34WSVGEM.js";
|
|
24
|
+
import "./chunk-VWCXW2E7.js";
|
|
25
|
+
import "./chunk-ZXYDQ3TZ.js";
|
|
26
|
+
import "./chunk-724UL2TJ.js";
|
|
26
27
|
import "./chunk-QOZXJ4NA.js";
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
29
|
-
import "./chunk-
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-LNAKEO63.js";
|
|
28
|
+
import "./chunk-P7266HLM.js";
|
|
29
|
+
import "./chunk-52FUZI6K.js";
|
|
30
|
+
import "./chunk-SAEFPSB6.js";
|
|
31
|
+
import "./chunk-GAEGEPOC.js";
|
|
32
32
|
import "./chunk-Z3CCVDUB.js";
|
|
33
33
|
import "./chunk-2BEMIWEW.js";
|
|
34
34
|
import {
|
|
35
35
|
logSessionStart
|
|
36
|
-
} from "./chunk-
|
|
37
|
-
import "./chunk-
|
|
36
|
+
} from "./chunk-66VMUL7Q.js";
|
|
37
|
+
import "./chunk-Q7DUK4LX.js";
|
|
38
38
|
import {
|
|
39
|
-
findLocalBinUpwards
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
import "./chunk-
|
|
39
|
+
findLocalBinUpwards,
|
|
40
|
+
localBinPath
|
|
41
|
+
} from "./chunk-AW7R2GWG.js";
|
|
42
|
+
import "./chunk-RWWYJ623.js";
|
|
43
43
|
import {
|
|
44
44
|
createAvailabilityLatch,
|
|
45
45
|
describeUnavailability
|
|
46
|
-
} from "./chunk-
|
|
47
|
-
import "./chunk-
|
|
48
|
-
import "./chunk-
|
|
49
|
-
import "./chunk-
|
|
50
|
-
import "./chunk-
|
|
46
|
+
} from "./chunk-VRZP76YM.js";
|
|
47
|
+
import "./chunk-QOBUHWHX.js";
|
|
48
|
+
import "./chunk-QILIYSJF.js";
|
|
49
|
+
import "./chunk-6C7JWPCP.js";
|
|
50
|
+
import "./chunk-5NGR67U5.js";
|
|
51
51
|
import {
|
|
52
52
|
getProjectDataDir,
|
|
53
53
|
safeSpawnAsync
|
|
54
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-C34ZXZ7O.js";
|
|
55
55
|
import "./chunk-BW5KFIQC.js";
|
|
56
56
|
import "./chunk-QYF5S6P6.js";
|
|
57
|
-
import "./chunk-
|
|
58
|
-
import "./chunk-
|
|
59
|
-
import "./chunk-
|
|
57
|
+
import "./chunk-PHDMFAKM.js";
|
|
58
|
+
import "./chunk-2BBLFX75.js";
|
|
59
|
+
import "./chunk-XVF2VVXP.js";
|
|
60
|
+
import "./chunk-ZANLILYD.js";
|
|
60
61
|
import "./chunk-2EECBNC5.js";
|
|
61
62
|
import {
|
|
62
63
|
incrementDegradationCount
|
|
63
|
-
} from "./chunk-
|
|
64
|
+
} from "./chunk-JAU72XNY.js";
|
|
64
65
|
import {
|
|
65
66
|
createSubsystemLogger
|
|
66
|
-
} from "./chunk-
|
|
67
|
-
import "./chunk-
|
|
68
|
-
import "./chunk-
|
|
67
|
+
} from "./chunk-XTMJ7XDT.js";
|
|
68
|
+
import "./chunk-JMYYOTQG.js";
|
|
69
|
+
import "./chunk-QQNQ7SJW.js";
|
|
70
|
+
import "./chunk-AOHZU2BM.js";
|
|
69
71
|
import "./chunk-LJDODBBZ.js";
|
|
70
72
|
import "./chunk-ABBOA7UD.js";
|
|
71
73
|
import {
|
|
72
74
|
findNearestMarkerRoot,
|
|
73
75
|
normalizeEphemeralMapKey,
|
|
74
76
|
normalizeFilePath
|
|
75
|
-
} from "./chunk-
|
|
77
|
+
} from "./chunk-N2H3ZPZY.js";
|
|
76
78
|
import "./chunk-NXL4FFQQ.js";
|
|
77
79
|
|
|
78
80
|
// dist/clients/knip-client.js
|
|
@@ -135,7 +137,7 @@ function resolveProjectKnipConfig(targetDir) {
|
|
|
135
137
|
return null;
|
|
136
138
|
}
|
|
137
139
|
function resolveProjectKnipBinary(targetDir) {
|
|
138
|
-
return findLocalBinUpwards("knip", targetDir) ?? null;
|
|
140
|
+
return localBinPath(findLocalBinUpwards("knip", targetDir)) ?? null;
|
|
139
141
|
}
|
|
140
142
|
function classifyKnipBinary(binary, targetDir) {
|
|
141
143
|
if (binary === null)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
tryLazyInstallForFormatter
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-OXXKQCSV.js";
|
|
5
5
|
import {
|
|
6
6
|
stripAnsi
|
|
7
7
|
} from "./chunk-FC4RP4I2.js";
|
|
@@ -46,57 +46,59 @@ import {
|
|
|
46
46
|
hasTerraformConfig,
|
|
47
47
|
hasVitePlusConfig,
|
|
48
48
|
stripGradleCommentsAndStrings
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-RPLINGVB.js";
|
|
50
50
|
import {
|
|
51
51
|
load
|
|
52
52
|
} from "./chunk-QOZXJ4NA.js";
|
|
53
53
|
import {
|
|
54
54
|
readTextFileOrUndefined,
|
|
55
55
|
resolveCargoPackageEdition
|
|
56
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-P7266HLM.js";
|
|
57
57
|
import {
|
|
58
58
|
getToolPath
|
|
59
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-66VMUL7Q.js";
|
|
60
60
|
import {
|
|
61
61
|
resolveToolCwd
|
|
62
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-Q7DUK4LX.js";
|
|
63
63
|
import {
|
|
64
64
|
VENDOR_BIN_DIRS,
|
|
65
65
|
VENV_BIN_DIRS,
|
|
66
66
|
findGlobalBinary,
|
|
67
|
-
findLocalBinUpwards
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
assertInstallAllowed
|
|
71
|
-
} from "./chunk-NTUJEGDZ.js";
|
|
67
|
+
findLocalBinUpwards,
|
|
68
|
+
localBinPath
|
|
69
|
+
} from "./chunk-AW7R2GWG.js";
|
|
72
70
|
import {
|
|
71
|
+
getIsolatedNpxSpawnOptions,
|
|
73
72
|
probeToolAsync
|
|
74
|
-
} from "./chunk-
|
|
73
|
+
} from "./chunk-RWWYJ623.js";
|
|
75
74
|
import {
|
|
76
75
|
classifyProbeFailure,
|
|
77
76
|
createAvailabilityLatch,
|
|
78
77
|
logAvailabilityDecision,
|
|
79
78
|
startHostStallSampler
|
|
80
|
-
} from "./chunk-
|
|
79
|
+
} from "./chunk-VRZP76YM.js";
|
|
81
80
|
import {
|
|
82
81
|
createGenerationSource,
|
|
83
82
|
safeSpawnAsync
|
|
84
|
-
} from "./chunk-
|
|
83
|
+
} from "./chunk-C34ZXZ7O.js";
|
|
85
84
|
import {
|
|
86
85
|
TERRAGRUNT_FILENAMES
|
|
87
|
-
} from "./chunk-
|
|
86
|
+
} from "./chunk-PHDMFAKM.js";
|
|
87
|
+
import {
|
|
88
|
+
assertInstallAllowed
|
|
89
|
+
} from "./chunk-ZANLILYD.js";
|
|
88
90
|
import {
|
|
89
91
|
compareOrdinal,
|
|
90
92
|
getDegradationLedgerGeneration,
|
|
91
93
|
incrementDegradationCount,
|
|
92
94
|
recordDegradationOnce
|
|
93
|
-
} from "./chunk-
|
|
95
|
+
} from "./chunk-JAU72XNY.js";
|
|
94
96
|
import {
|
|
95
97
|
logExtension
|
|
96
|
-
} from "./chunk-
|
|
98
|
+
} from "./chunk-XTMJ7XDT.js";
|
|
97
99
|
import {
|
|
98
100
|
logLatency
|
|
99
|
-
} from "./chunk-
|
|
101
|
+
} from "./chunk-QQNQ7SJW.js";
|
|
100
102
|
import {
|
|
101
103
|
BoundedFifoMap,
|
|
102
104
|
BoundedLruCache
|
|
@@ -106,7 +108,7 @@ import {
|
|
|
106
108
|
findNearestMarkerRoot,
|
|
107
109
|
normalizeMapKey,
|
|
108
110
|
toPosix
|
|
109
|
-
} from "./chunk-
|
|
111
|
+
} from "./chunk-N2H3ZPZY.js";
|
|
110
112
|
|
|
111
113
|
// dist/clients/formatters.js
|
|
112
114
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
@@ -1378,19 +1380,19 @@ async function resolveGoFmtBinary() {
|
|
|
1378
1380
|
return await fileExists(binary) ? binary : null;
|
|
1379
1381
|
}
|
|
1380
1382
|
async function findInVenv(binary, cwd) {
|
|
1381
|
-
return findLocalBinUpwards(binary, cwd, {
|
|
1383
|
+
return localBinPath(findLocalBinUpwards(binary, cwd, {
|
|
1382
1384
|
windowsExt: ".exe",
|
|
1383
1385
|
binDirs: VENV_BIN_DIRS
|
|
1384
|
-
}) ?? null;
|
|
1386
|
+
})) ?? null;
|
|
1385
1387
|
}
|
|
1386
1388
|
async function findInVendorBin(binary, cwd) {
|
|
1387
|
-
return findLocalBinUpwards(binary, cwd, {
|
|
1389
|
+
return localBinPath(findLocalBinUpwards(binary, cwd, {
|
|
1388
1390
|
windowsExt: ".bat",
|
|
1389
1391
|
binDirs: VENDOR_BIN_DIRS
|
|
1390
|
-
}) ?? null;
|
|
1392
|
+
})) ?? null;
|
|
1391
1393
|
}
|
|
1392
1394
|
async function findInNodeModules(binary, cwd) {
|
|
1393
|
-
return findLocalBinUpwards(binary, cwd) ?? null;
|
|
1395
|
+
return localBinPath(findLocalBinUpwards(binary, cwd)) ?? null;
|
|
1394
1396
|
}
|
|
1395
1397
|
async function canUseBundleExec(cwd) {
|
|
1396
1398
|
if (await which("bundle") === null)
|
|
@@ -2055,8 +2057,8 @@ var styluaFormatter = {
|
|
|
2055
2057
|
name: "stylua",
|
|
2056
2058
|
command: ["stylua", "$FILE"],
|
|
2057
2059
|
extensions: [".lua"],
|
|
2058
|
-
resolveCommand: managedFormatterResolver("stylua", [], findLocalBinUpwards),
|
|
2059
|
-
detect: managedToolDetect("stylua", async (cwd) => (await findUp(["stylua.toml", ".stylua.toml"], cwd)).length > 0, async (cwd) => Boolean(findLocalBinUpwards("stylua", cwd) || await which("stylua")))
|
|
2060
|
+
resolveCommand: managedFormatterResolver("stylua", [], (binary, cwd) => localBinPath(findLocalBinUpwards(binary, cwd))),
|
|
2061
|
+
detect: managedToolDetect("stylua", async (cwd) => (await findUp(["stylua.toml", ".stylua.toml"], cwd)).length > 0, async (cwd) => Boolean(localBinPath(findLocalBinUpwards("stylua", cwd)) || await which("stylua")))
|
|
2060
2062
|
};
|
|
2061
2063
|
var ormoluFormatter = {
|
|
2062
2064
|
name: "ormolu",
|
|
@@ -2476,6 +2478,16 @@ function diagnosticTail(text, maxLines = FORMATTER_ERROR_TAIL_LINES) {
|
|
|
2476
2478
|
return void 0;
|
|
2477
2479
|
return lines.slice(-maxLines).join("\n");
|
|
2478
2480
|
}
|
|
2481
|
+
async function resolveNpxFallback(formatterName, fallback) {
|
|
2482
|
+
const toolId = getAutoInstallToolIdForFormatter(formatterName);
|
|
2483
|
+
if (!toolId)
|
|
2484
|
+
return fallback;
|
|
2485
|
+
const { ensureTool } = await import("./probes/installer.js");
|
|
2486
|
+
const installed = await ensureTool(toolId);
|
|
2487
|
+
if (!installed)
|
|
2488
|
+
return fallback;
|
|
2489
|
+
return [installed, ...fallback.slice(2)];
|
|
2490
|
+
}
|
|
2479
2491
|
async function resolveFormatterCommand(formatter, absolutePath, cwd) {
|
|
2480
2492
|
const agreement = establishToolAgreement(formatter.name, cwd);
|
|
2481
2493
|
if (agreement.decision === "decline") {
|
|
@@ -2494,8 +2506,11 @@ async function resolveFormatterCommand(formatter, absolutePath, cwd) {
|
|
|
2494
2506
|
if (resolved !== null)
|
|
2495
2507
|
return resolved;
|
|
2496
2508
|
const fallback = formatter.command.map((c) => c.replace("$FILE", absolutePath));
|
|
2497
|
-
if (fallback[0] === "npx"
|
|
2498
|
-
|
|
2509
|
+
if (fallback[0] === "npx") {
|
|
2510
|
+
if (!assertInstallAllowed(`formatter npx fallback: ${formatter.name}`)) {
|
|
2511
|
+
return SKIP_FORMATTING;
|
|
2512
|
+
}
|
|
2513
|
+
return resolveNpxFallback(formatter.name, fallback);
|
|
2499
2514
|
}
|
|
2500
2515
|
return fallback;
|
|
2501
2516
|
}
|
|
@@ -2528,7 +2543,8 @@ async function formatFile(filePath, formatter, enter) {
|
|
|
2528
2543
|
const contentBefore = await fs2.readFile(absolutePath, "utf-8");
|
|
2529
2544
|
const result = await safeSpawnAsync(cmd[0], cmd.slice(1), {
|
|
2530
2545
|
timeout: 15e3,
|
|
2531
|
-
cwd: formatterCwd
|
|
2546
|
+
cwd: formatterCwd,
|
|
2547
|
+
...cmd[0] === "npx" || cmd[0] === "bunx" ? getIsolatedNpxSpawnOptions() : {}
|
|
2532
2548
|
});
|
|
2533
2549
|
if (result.spawnFailure?.kind === "tool-not-found") {
|
|
2534
2550
|
return {
|