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
package/CHANGELOG.md
CHANGED
|
@@ -16,6 +16,94 @@ All notable changes to pi-lens will be documented in this file.
|
|
|
16
16
|
|
|
17
17
|
### Security
|
|
18
18
|
|
|
19
|
+
## [4.4.3] - 2026-10-11
|
|
20
|
+
|
|
21
|
+
### Added
|
|
22
|
+
|
|
23
|
+
- **Adopted out-of-root projects now get global, config-free per-file linters** — when an edit lands in a marked project outside the session root, pi-lens admits only the explicit admission list of dispatch runners that read no project config and cannot execute project code (`php-lint`, `fish-indent`), and only from global or pi-lens-managed binaries; the advisory now says the LSP plus these per-file linters run. Executable paths inside the adopted or session root are refused, including PATH entries and symlink targets. Formatting, autofix, other dispatch runners, whole-project scanners, and automatic tests stay off (refs #4242).
|
|
24
|
+
|
|
25
|
+
### Fixed
|
|
26
|
+
|
|
27
|
+
- **LSP warms again in the published package (closes #4314)** — 4.4.2 loaded the LSP stack through a computed `import()` that esbuild could not inline, so every session logged `LSP warm failed: Cannot find module './lsp/capabilities.js'` and the LSP-backed tools went dead. The import is a literal again, and a packaging test now fails the build if any shipped file dynamic-imports something the tarball does not carry.
|
|
28
|
+
|
|
29
|
+
### Internal
|
|
30
|
+
|
|
31
|
+
<details>
|
|
32
|
+
<summary>4 internal changes: tests, CI, tooling, and refactors</summary>
|
|
33
|
+
|
|
34
|
+
- **tmp-hygiene attributes a leaked root to the test file that created it** — the tmp-root interposer records one creator per entry, the serialized owner's failure message names that file beside the prefix owner, and an entry with no observed creator is labelled `created outside the test process, or the creators record was unreadable` instead of taking a prefix owner's blame. (#2912)
|
|
35
|
+
|
|
36
|
+
- Add an end-to-end witness that a save-only LSP server's diagnostics reach pi-lens exactly when `textDocument/didSave` is sent: the fake stdio server publishes only from its `didSave` branch (`FAKE_LSP_PUBLISH_ON_SAVE`), and a real `createLSPClient` reads the seeded diagnostic after a save touch and none without one (refs #3405).
|
|
37
|
+
|
|
38
|
+
- Keep a killed scanner scan's report directory inside a harness-owned root: one shared seam (`PI_LENS_TEST_SCANNER_TMPDIR`, `clients/scanner-temp-root.ts`) now parents jscpd, gitleaks, opengrep, and trivy report directories, and the MCP and real-pi test harnesses apply owned scanner roots after caller environment overrides, so even a TMPDIR-overriding child SIGKILLed mid-scan no longer strands a `pi-lens-<scanner>-*` entry in the shared tmpdir and reds `tmp-fixture-hygiene` (refs #4133). The scan-setup cleanup guard is retained as defence-in-depth.
|
|
39
|
+
|
|
40
|
+
- Flake-shape ratchet: yield the event loop between files so `@ast-grep/napi` releases each parsed tree's native memory, cutting the test file's peak RSS from ~2,049 MB (over the 2,048 MB per-worker budget) to ~313 MB (refs #4292).
|
|
41
|
+
|
|
42
|
+
</details>
|
|
43
|
+
|
|
44
|
+
## [4.4.2] - 2026-10-10
|
|
45
|
+
|
|
46
|
+
### Added
|
|
47
|
+
|
|
48
|
+
- **pi-lens now fails closed on unknown project trust** — Under pi, when pi cannot confirm the project is trusted, pi-lens refuses to run project code and emits one notice per session. It withholds project-local tool binaries while keeping global and managed fallbacks available (#4268). It refuses built-in language servers that execute project code before discovery or installation (#4269). Project-sourced LSP commands, environment, initialization options, and local binaries require trust as well (#2372). The TypeScript server skips the project's own `tsserver.js` and native TypeScript 7 `tsc`, falling back to pi-lens-managed TypeScript instead (#4296). MCP and other non-pi hosts do not consult pi trust; their calling client owns workspace trust, so project tools stay available there (#4300).
|
|
49
|
+
|
|
50
|
+
- **Built-in Lean 4 language support (refs #4119)** — `.lean` files are recognized and sent to the Lean language server using the `lean` LSP language id. In Lake projects, pi-lens launches `lake serve` from the detected project root, so Lake and elan honor the project's toolchain and environment. pi-lens does not install or manage Lean; install Lean and Lake separately and ensure `lake` is on `PATH`.
|
|
51
|
+
|
|
52
|
+
- **Path-scoped rule policy** — Add `rules.<id>.ignorePaths` to skip a rule on matching project-relative paths and reclaim scan work (#4226).
|
|
53
|
+
|
|
54
|
+
- **Analyse marked out-of-root edits as adopted projects.** An edit in a separate project gets LSP diagnostics from global servers, while project-local tools, linters and session bookkeeping stay isolated (refs #4242).
|
|
55
|
+
|
|
56
|
+
- **`/lens-health` now reports the effective pi-lens tool surface**, including disabled tools and the host-managed bundled-skill boundary.
|
|
57
|
+
|
|
58
|
+
### Changed
|
|
59
|
+
|
|
60
|
+
- **Stale test-runner verdicts state their edit gap and re-queue a run.** When an async verdict is delivered for a file the agent has edited since the run started, the message names the file and how many edits behind it is and queues a re-run for the current version instead of presenting the old verdict as current.
|
|
61
|
+
|
|
62
|
+
### Fixed
|
|
63
|
+
|
|
64
|
+
- **The session-start orientation names only the tools pi-lens registered** (refs #2967). A tool disabled with `tools.<name>.enabled: false` is no longer advertised, and the `pi_lens_activate_tools` example is drawn from the enabled situational set. The orientation's pre-existing-error demand is configurable with `contextInjection.requirePreExistingFixes` (default unchanged).
|
|
65
|
+
|
|
66
|
+
- **Expired session hand-offs now preserve activated tools** instead of dropping them when a successor is interrupted before startup (closes #4236). Test-only successor pending-window overrides are restricted to Vitest child processes.
|
|
67
|
+
|
|
68
|
+
- **Duplicate pi session starts are ignored safely.** pi-lens now drops repeated `session_start` events at entry while preserving distinct reload, new, resume, and fork starts, and drains NDJSON logs before graceful shutdown (refs #2891).
|
|
69
|
+
|
|
70
|
+
- **TypeScript no longer reports clean from its empty pre-index publish.**
|
|
71
|
+
|
|
72
|
+
- **Require a BuildKit rule from the official Docker smoke server** (closes #3939) — The nightly smoke now uses the upstream rule-bearing fixture and discloses runners without `docker buildx` instead of accepting an empty diagnostic baseline. Credit: qiyangfan.
|
|
73
|
+
|
|
74
|
+
- **Bridge reads survive a `/reload` on the TypeScript-source extension load.** A third-party read recorded after `/reload` (`pi -e index.ts`) now licenses the next edit instead of being falsely blocked with "Edit without read", without allowing a concurrent or stale activation to retarget the bridge (refs #4169, #4258).
|
|
75
|
+
|
|
76
|
+
- **Ast-grep fallbacks use the official CLI package from an isolated cwd (#4193)** — Structural rule replacements, path searches, and CLI probes name `@ast-grep/cli` when direct binary resolution fails and run from a pi-lens-owned tools directory, so a project's `.npmrc` never reaches `npx`; relative `paths` resolve against the project before dispatch.
|
|
77
|
+
|
|
78
|
+
- **Windows LSP auto-install now repairs missing shell commands.** Exit-code-1 startup failures are classified as missing tools only when the command or shim target is absent.
|
|
79
|
+
|
|
80
|
+
- **Unicode-normalized edits now keep their raw target span** (closes #4265) — Full-width punctuation, smart quotes, dashes, and special spaces no longer produce a false “edit target not found” block.
|
|
81
|
+
|
|
82
|
+
- **Subagent turn-end isolation** — a concurrent subagent no longer consumes the primary session's pending project analysis worklist or deferred findings. (refs #3613)
|
|
83
|
+
|
|
84
|
+
### Internal
|
|
85
|
+
|
|
86
|
+
<details>
|
|
87
|
+
<summary>8 internal changes: tests, CI, tooling, and refactors</summary>
|
|
88
|
+
|
|
89
|
+
- Pin the test home used by the skills package-filter coverage so host-installed skills cannot affect its results.
|
|
90
|
+
|
|
91
|
+
- Require every PR `## Class sweep` to name the defect shape, quote the search that defines its population, and give a verdict, or say `none: <reason>` (#4273).
|
|
92
|
+
|
|
93
|
+
- The nightly tool-smoke LSP capability census builds the in-place compiled twins immediately before it runs, so vitest no longer aborts on the stale-build guard (refs #4302).
|
|
94
|
+
|
|
95
|
+
- Pre-push and lane-check now rebuild a missing or stale bundled `dist/` dependency before governance suites (#4239).
|
|
96
|
+
|
|
97
|
+
- Restore the nightly LSP smoke harness's trusted-project host boundary so project-local server fixtures exercise their intended launch paths.
|
|
98
|
+
|
|
99
|
+
- Added the grouped experimental `LspCapabilities` facade over `LSPService` and migrated production LSP callers behind it without changing behavior.
|
|
100
|
+
|
|
101
|
+
- Centralize analysis-root classification and thread adopted-root no-op gates through root-keyed tool-result writers (refs #4242).
|
|
102
|
+
|
|
103
|
+
- Pinned workflow download redirects to HTTPS and made late formatter resync ownership explicit for the Sonar quality gate.
|
|
104
|
+
|
|
105
|
+
</details>
|
|
106
|
+
|
|
19
107
|
## [4.4.1] - 2026-10-09
|
|
20
108
|
|
|
21
109
|
### Added
|
|
@@ -44,14 +44,15 @@
|
|
|
44
44
|
"./clients/lsp-budget.js",
|
|
45
45
|
"./clients/lsp-lazy.js",
|
|
46
46
|
"./clients/lsp-status.js",
|
|
47
|
+
"./clients/lsp/capabilities.js",
|
|
47
48
|
"./clients/lsp/cascade-tier.js",
|
|
48
49
|
"./clients/lsp/config.js",
|
|
49
|
-
"./clients/lsp/index.js",
|
|
50
50
|
"./clients/lsp/session-roots.js",
|
|
51
51
|
"./clients/memory-sampler.js",
|
|
52
52
|
"./clients/message-end-attribution.js",
|
|
53
53
|
"./clients/mutating-tool.js",
|
|
54
54
|
"./clients/mutation-bridge.js",
|
|
55
|
+
"./clients/ndjson-logger.js",
|
|
55
56
|
// #2430: the agent_settled sweep and its post-drain re-baseline. Eager
|
|
56
57
|
// because they run inside the settle handler, on the same path as the
|
|
57
58
|
// deferred drain they bracket.
|
|
@@ -59,6 +60,7 @@
|
|
|
59
60
|
"./clients/observed-mutation.js",
|
|
60
61
|
"./clients/path-attribution-telemetry.js",
|
|
61
62
|
"./clients/path-utils.js",
|
|
63
|
+
"./clients/process-bridge.js",
|
|
62
64
|
"./clients/project-lens-config.js",
|
|
63
65
|
"./clients/project-trust.js",
|
|
64
66
|
"./clients/quiet-window.js",
|
|
@@ -2,19 +2,20 @@ import { createRequire as __pilensCreateRequire } from "node:module"; const requ
|
|
|
2
2
|
import {
|
|
3
3
|
AgentBehaviorClient,
|
|
4
4
|
agentBehaviorClient
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-ZGDGW2V3.js";
|
|
6
|
+
import "./chunk-IBGIOBEE.js";
|
|
7
|
+
import "./chunk-C34ZXZ7O.js";
|
|
8
|
+
import "./chunk-2BBLFX75.js";
|
|
9
|
+
import "./chunk-XVF2VVXP.js";
|
|
10
10
|
import "./chunk-2EECBNC5.js";
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-JAU72XNY.js";
|
|
12
|
+
import "./chunk-XTMJ7XDT.js";
|
|
13
|
+
import "./chunk-JMYYOTQG.js";
|
|
14
|
+
import "./chunk-QQNQ7SJW.js";
|
|
15
|
+
import "./chunk-AOHZU2BM.js";
|
|
15
16
|
import "./chunk-LJDODBBZ.js";
|
|
16
17
|
import "./chunk-ABBOA7UD.js";
|
|
17
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-N2H3ZPZY.js";
|
|
18
19
|
import "./chunk-NXL4FFQQ.js";
|
|
19
20
|
export {
|
|
20
21
|
AgentBehaviorClient,
|
|
@@ -3,13 +3,13 @@ import {
|
|
|
3
3
|
findModuleForPath,
|
|
4
4
|
getDownstreamModules,
|
|
5
5
|
getModuleSourceFiles
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-GBPP5P7X.js";
|
|
7
7
|
import {
|
|
8
8
|
detectFileRole
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-2BBLFX75.js";
|
|
10
10
|
import {
|
|
11
11
|
normalizeMapKey
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-N2H3ZPZY.js";
|
|
13
13
|
|
|
14
14
|
// dist/clients/review-graph/query.js
|
|
15
15
|
function dedupe(items) {
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
findPiLensConfigMarkerInDir,
|
|
15
15
|
getPiLensGlobalConfigPath,
|
|
16
16
|
isResolvedGlobalConfigPath
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-XVF2VVXP.js";
|
|
18
18
|
import {
|
|
19
19
|
DEGRADATION_ENTRIES_PER_KIND,
|
|
20
20
|
GLOBAL_NON_FLAG_CONFIG_SECTIONS,
|
|
@@ -31,21 +31,21 @@ import {
|
|
|
31
31
|
readFlagConfigValue,
|
|
32
32
|
readToolConfig,
|
|
33
33
|
recordDegradationOnce
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-JAU72XNY.js";
|
|
35
35
|
import {
|
|
36
36
|
logExtension
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-XTMJ7XDT.js";
|
|
38
38
|
import {
|
|
39
39
|
CONFIG_SCHEMA_ANCHOR_KEY,
|
|
40
40
|
CONFIG_SCHEMA_ID,
|
|
41
41
|
DEPRECATED_CONFIG_SURFACES,
|
|
42
42
|
STABILITY_TIER_KEY,
|
|
43
43
|
withConfigDiagnosticCode
|
|
44
|
-
} from "./chunk-
|
|
44
|
+
} from "./chunk-JMYYOTQG.js";
|
|
45
45
|
import {
|
|
46
46
|
redactSecrets,
|
|
47
47
|
toPositiveFinite
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-AOHZU2BM.js";
|
|
49
49
|
import {
|
|
50
50
|
BoundedLruCache
|
|
51
51
|
} from "./chunk-ABBOA7UD.js";
|
|
@@ -54,7 +54,7 @@ import {
|
|
|
54
54
|
isAtOrAboveHomeDir,
|
|
55
55
|
isWindowsPath,
|
|
56
56
|
walkUpDirs
|
|
57
|
-
} from "./chunk-
|
|
57
|
+
} from "./chunk-N2H3ZPZY.js";
|
|
58
58
|
|
|
59
59
|
// dist/clients/generated-artifacts.js
|
|
60
60
|
import * as fs from "node:fs";
|
|
@@ -486,6 +486,9 @@ var TIER_CLASS = {
|
|
|
486
486
|
function tierPrecedence(tier) {
|
|
487
487
|
return SOURCE_TIERS.indexOf(tier);
|
|
488
488
|
}
|
|
489
|
+
function isRepoTier(tier) {
|
|
490
|
+
return TIER_CLASS[tier] === "repo";
|
|
491
|
+
}
|
|
489
492
|
function isOperatorTier(tier) {
|
|
490
493
|
return TIER_CLASS[tier] === "operator";
|
|
491
494
|
}
|
|
@@ -845,6 +848,9 @@ function propertySchema(node, name) {
|
|
|
845
848
|
return child;
|
|
846
849
|
}
|
|
847
850
|
}
|
|
851
|
+
const additional = node.additionalProperties;
|
|
852
|
+
if (isSchemaNode(additional))
|
|
853
|
+
return additional;
|
|
848
854
|
return void 0;
|
|
849
855
|
}
|
|
850
856
|
function additionalPropertyPolicy(node) {
|
|
@@ -1282,6 +1288,15 @@ function walkScalar(value, schema, context, declared) {
|
|
|
1282
1288
|
});
|
|
1283
1289
|
return DROPPED;
|
|
1284
1290
|
}
|
|
1291
|
+
const minLength = schema?.minLength;
|
|
1292
|
+
if (declared === "string" && typeof minLength === "number" && typeof value === "string" && value.length < minLength) {
|
|
1293
|
+
record2(context, {
|
|
1294
|
+
code: "PILENS_CFG_0005",
|
|
1295
|
+
key: pointerOf(context.path),
|
|
1296
|
+
reason: `string must contain at least ${minLength} character${minLength === 1 ? "" : "s"}; ignored`
|
|
1297
|
+
});
|
|
1298
|
+
return DROPPED;
|
|
1299
|
+
}
|
|
1285
1300
|
return checkEnum(value, schema, context) ? value : DROPPED;
|
|
1286
1301
|
}
|
|
1287
1302
|
function checkEnum(value, schema, context) {
|
|
@@ -1417,6 +1432,29 @@ function lspServerEntryNode() {
|
|
|
1417
1432
|
}
|
|
1418
1433
|
};
|
|
1419
1434
|
}
|
|
1435
|
+
function lspServerOverrideNode() {
|
|
1436
|
+
return {
|
|
1437
|
+
type: "object",
|
|
1438
|
+
additionalProperties: true,
|
|
1439
|
+
[STABILITY_TIER_KEY]: "experimental",
|
|
1440
|
+
properties: {
|
|
1441
|
+
command: { [STABILITY_TIER_KEY]: "experimental" },
|
|
1442
|
+
env: {
|
|
1443
|
+
type: "object",
|
|
1444
|
+
additionalProperties: {
|
|
1445
|
+
type: "string",
|
|
1446
|
+
[STABILITY_TIER_KEY]: "experimental"
|
|
1447
|
+
},
|
|
1448
|
+
[STABILITY_TIER_KEY]: "experimental"
|
|
1449
|
+
},
|
|
1450
|
+
initializationOptions: {
|
|
1451
|
+
type: "object",
|
|
1452
|
+
additionalProperties: true,
|
|
1453
|
+
[STABILITY_TIER_KEY]: "experimental"
|
|
1454
|
+
}
|
|
1455
|
+
}
|
|
1456
|
+
};
|
|
1457
|
+
}
|
|
1420
1458
|
function lspNamespace() {
|
|
1421
1459
|
const properties = {
|
|
1422
1460
|
// Reserved but deliberately UNTYPED. `lens-config.ts` already rejects a
|
|
@@ -1437,7 +1475,7 @@ function lspNamespace() {
|
|
|
1437
1475
|
// #3968: server entries are TYPED — each carries the covers
|
|
1438
1476
|
// claim node — while staying open on every other field.
|
|
1439
1477
|
{ additionalProperties: lspServerEntryNode() }
|
|
1440
|
-
) : { additionalProperties: true } : {},
|
|
1478
|
+
) : key === "serverOverrides" ? { additionalProperties: lspServerOverrideNode() } : { additionalProperties: true } : {},
|
|
1441
1479
|
...denyAnnotation(key)
|
|
1442
1480
|
};
|
|
1443
1481
|
}
|
|
@@ -1448,6 +1486,31 @@ function lspNamespace() {
|
|
|
1448
1486
|
properties
|
|
1449
1487
|
};
|
|
1450
1488
|
}
|
|
1489
|
+
function rulePolicyEntryNode() {
|
|
1490
|
+
return {
|
|
1491
|
+
type: "object",
|
|
1492
|
+
additionalProperties: true,
|
|
1493
|
+
properties: {
|
|
1494
|
+
threshold: { type: "number", [STABILITY_TIER_KEY]: "experimental" },
|
|
1495
|
+
// These two legacy fields remain opaque so the project compatibility
|
|
1496
|
+
// parser can preserve its established field-specific diagnostics.
|
|
1497
|
+
disable: opaque("experimental"),
|
|
1498
|
+
select: opaque("experimental"),
|
|
1499
|
+
ignorePaths: {
|
|
1500
|
+
type: "array",
|
|
1501
|
+
items: {
|
|
1502
|
+
type: "string",
|
|
1503
|
+
minLength: 1,
|
|
1504
|
+
[STABILITY_TIER_KEY]: "experimental"
|
|
1505
|
+
},
|
|
1506
|
+
[MERGE_STRATEGY_KEY]: "append",
|
|
1507
|
+
[DENY_KEY]: "array-union",
|
|
1508
|
+
[STABILITY_TIER_KEY]: "experimental"
|
|
1509
|
+
}
|
|
1510
|
+
},
|
|
1511
|
+
[STABILITY_TIER_KEY]: "experimental"
|
|
1512
|
+
};
|
|
1513
|
+
}
|
|
1451
1514
|
function buildConfigSchema() {
|
|
1452
1515
|
const properties = {};
|
|
1453
1516
|
for (const key of [
|
|
@@ -1473,6 +1536,11 @@ function buildConfigSchema() {
|
|
|
1473
1536
|
])),
|
|
1474
1537
|
[STABILITY_TIER_KEY]: "stable"
|
|
1475
1538
|
};
|
|
1539
|
+
properties.rules = {
|
|
1540
|
+
type: "object",
|
|
1541
|
+
additionalProperties: rulePolicyEntryNode(),
|
|
1542
|
+
[STABILITY_TIER_KEY]: "experimental"
|
|
1543
|
+
};
|
|
1476
1544
|
for (const key of PROJECT_FOREIGN_CONFIG_NAMESPACES) {
|
|
1477
1545
|
properties[key] ??= opaque("experimental");
|
|
1478
1546
|
}
|
|
@@ -2135,6 +2203,18 @@ function parseRulePolicyList(note, ruleId, key, value) {
|
|
|
2135
2203
|
}
|
|
2136
2204
|
return { list, invalid: false };
|
|
2137
2205
|
}
|
|
2206
|
+
function parseRulePathList(note, ruleId, value) {
|
|
2207
|
+
if (!Array.isArray(value)) {
|
|
2208
|
+
note(`rules.${ruleId}.ignorePaths must be an array of strings`);
|
|
2209
|
+
return void 0;
|
|
2210
|
+
}
|
|
2211
|
+
const paths = value.filter((entry) => typeof entry === "string" && entry.trim().length > 0).map((entry) => entry.trim());
|
|
2212
|
+
if (value.length > 0 && paths.length === 0) {
|
|
2213
|
+
note(`rules.${ruleId}.ignorePaths must contain a non-empty string`);
|
|
2214
|
+
return void 0;
|
|
2215
|
+
}
|
|
2216
|
+
return paths;
|
|
2217
|
+
}
|
|
2138
2218
|
var NO_RECORDS = [];
|
|
2139
2219
|
function parseConfigFile(configPath) {
|
|
2140
2220
|
const { note, records: ignoredRecords } = ignoredRecordCollector(configPath, "project");
|
|
@@ -2169,7 +2249,11 @@ function parseConfigFile(configPath) {
|
|
|
2169
2249
|
value: outcome.value
|
|
2170
2250
|
});
|
|
2171
2251
|
const raw = resolved.value;
|
|
2172
|
-
const
|
|
2252
|
+
const rawProject = outcome.value;
|
|
2253
|
+
const obj = {
|
|
2254
|
+
...resolved.value,
|
|
2255
|
+
...rawProject.rules !== void 0 ? { rules: rawProject.rules } : {}
|
|
2256
|
+
};
|
|
2173
2257
|
const ignore = Array.isArray(obj.ignore) ? obj.ignore.filter((p) => typeof p === "string") : [];
|
|
2174
2258
|
const mutations = {};
|
|
2175
2259
|
for (const spec of PROJECT_SCOPED_LENS_FLAGS) {
|
|
@@ -2201,9 +2285,14 @@ function parseConfigFile(configPath) {
|
|
|
2201
2285
|
if (!parsed.invalid && parsed.list.length > 0)
|
|
2202
2286
|
entry.select = parsed.list;
|
|
2203
2287
|
}
|
|
2204
|
-
if (
|
|
2288
|
+
if ("ignorePaths" in r) {
|
|
2289
|
+
const paths = parseRulePathList(note, ruleId, r.ignorePaths);
|
|
2290
|
+
if (paths && paths.length > 0)
|
|
2291
|
+
entry.ignorePaths = paths;
|
|
2292
|
+
}
|
|
2293
|
+
if (entry.threshold !== void 0 || entry.disable || entry.select || entry.ignorePaths) {
|
|
2205
2294
|
rules[ruleId] = entry;
|
|
2206
|
-
} else if (!("threshold" in r) && !("disable" in r) && !("select" in r)) {
|
|
2295
|
+
} else if (!("threshold" in r) && !("disable" in r) && !("select" in r) && !("ignorePaths" in r)) {
|
|
2207
2296
|
note(`rules.${ruleId} has no recognized setting (threshold, disable, select); ignored`);
|
|
2208
2297
|
}
|
|
2209
2298
|
}
|
|
@@ -2322,7 +2411,7 @@ function parseConfigFile(configPath) {
|
|
|
2322
2411
|
raw,
|
|
2323
2412
|
configPath
|
|
2324
2413
|
},
|
|
2325
|
-
records: resolved.records,
|
|
2414
|
+
records: resolved.records.filter((record4) => !record4.key.startsWith("/rules/")),
|
|
2326
2415
|
ignored: ignoredRecords()
|
|
2327
2416
|
};
|
|
2328
2417
|
}
|
|
@@ -2335,6 +2424,7 @@ export {
|
|
|
2335
2424
|
detectFileRole,
|
|
2336
2425
|
notifyUserDegradation,
|
|
2337
2426
|
warnIgnoredConfigOnce,
|
|
2427
|
+
isRepoTier,
|
|
2338
2428
|
provenanceView,
|
|
2339
2429
|
provenanceFor,
|
|
2340
2430
|
compareKeys,
|
|
@@ -2,11 +2,11 @@ import { createRequire as __pilensCreateRequire } from "node:module"; const requ
|
|
|
2
2
|
import {
|
|
3
3
|
classifyRunOutcome,
|
|
4
4
|
firstOutputLine
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-UZ3TUTRV.js";
|
|
6
6
|
import {
|
|
7
7
|
incrementDegradationCount,
|
|
8
8
|
truncateForLedger
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-JAU72XNY.js";
|
|
10
10
|
|
|
11
11
|
// dist/clients/dispatch/types.js
|
|
12
12
|
var RUNNER_SKIP_REASONS = [
|
|
@@ -54,55 +54,56 @@ import {
|
|
|
54
54
|
reviewGraphCachePath,
|
|
55
55
|
terminateReviewGraphPersistWorkerForTests,
|
|
56
56
|
waitForReviewGraphPersistsForTests
|
|
57
|
-
} from "./chunk-
|
|
57
|
+
} from "./chunk-YYOIQFRS.js";
|
|
58
58
|
import "./chunk-3MED75HT.js";
|
|
59
|
-
import "./chunk-
|
|
60
|
-
import "./chunk-
|
|
61
|
-
import "./chunk-OZJINN4O.js";
|
|
62
|
-
import "./chunk-3JSEWUWI.js";
|
|
59
|
+
import "./chunk-M6HSLBWY.js";
|
|
60
|
+
import "./chunk-IBGIOBEE.js";
|
|
63
61
|
import "./chunk-XIMYZ3JA.js";
|
|
64
|
-
import "./chunk-
|
|
65
|
-
import "./chunk-
|
|
66
|
-
import "./chunk-
|
|
62
|
+
import "./chunk-EU63SDCG.js";
|
|
63
|
+
import "./chunk-VWCXW2E7.js";
|
|
64
|
+
import "./chunk-FCSOVF55.js";
|
|
65
|
+
import "./chunk-PNQDPDRC.js";
|
|
66
|
+
import "./chunk-ZXYDQ3TZ.js";
|
|
67
67
|
import "./chunk-5W3R6LFT.js";
|
|
68
|
-
import "./chunk-
|
|
68
|
+
import "./chunk-QHJ6DQ2R.js";
|
|
69
69
|
import "./chunk-Z54ZSOBZ.js";
|
|
70
|
-
import "./chunk-
|
|
70
|
+
import "./chunk-724UL2TJ.js";
|
|
71
71
|
import "./chunk-QOZXJ4NA.js";
|
|
72
|
-
import "./chunk-
|
|
73
|
-
import "./chunk-
|
|
74
|
-
import "./chunk-
|
|
75
|
-
import "./chunk-
|
|
76
|
-
import "./chunk-
|
|
77
|
-
import "./chunk-
|
|
72
|
+
import "./chunk-GBPP5P7X.js";
|
|
73
|
+
import "./chunk-P7266HLM.js";
|
|
74
|
+
import "./chunk-MQLUAEOC.js";
|
|
75
|
+
import "./chunk-52FUZI6K.js";
|
|
76
|
+
import "./chunk-SAEFPSB6.js";
|
|
77
|
+
import "./chunk-GAEGEPOC.js";
|
|
78
78
|
import "./chunk-Z3CCVDUB.js";
|
|
79
|
-
import "./chunk-
|
|
79
|
+
import "./chunk-L3BLXZG7.js";
|
|
80
80
|
import "./chunk-2BEMIWEW.js";
|
|
81
|
-
import "./chunk-
|
|
82
|
-
import "./chunk-
|
|
83
|
-
import "./chunk-
|
|
84
|
-
import "./chunk-
|
|
85
|
-
import "./chunk-
|
|
86
|
-
import "./chunk-
|
|
87
|
-
import "./chunk-
|
|
88
|
-
import "./chunk-
|
|
89
|
-
import "./chunk-
|
|
90
|
-
import "./chunk-
|
|
91
|
-
import "./chunk-T54VJRAD.js";
|
|
81
|
+
import "./chunk-ACXEQZOU.js";
|
|
82
|
+
import "./chunk-Q7DUK4LX.js";
|
|
83
|
+
import "./chunk-AW7R2GWG.js";
|
|
84
|
+
import "./chunk-RWWYJ623.js";
|
|
85
|
+
import "./chunk-VRZP76YM.js";
|
|
86
|
+
import "./chunk-QOBUHWHX.js";
|
|
87
|
+
import "./chunk-QILIYSJF.js";
|
|
88
|
+
import "./chunk-6C7JWPCP.js";
|
|
89
|
+
import "./chunk-5NGR67U5.js";
|
|
90
|
+
import "./chunk-C34ZXZ7O.js";
|
|
92
91
|
import "./chunk-BW5KFIQC.js";
|
|
93
92
|
import "./chunk-QYF5S6P6.js";
|
|
94
|
-
import "./chunk-
|
|
95
|
-
import "./chunk-
|
|
96
|
-
import "./chunk-
|
|
93
|
+
import "./chunk-PHDMFAKM.js";
|
|
94
|
+
import "./chunk-2BBLFX75.js";
|
|
95
|
+
import "./chunk-XVF2VVXP.js";
|
|
96
|
+
import "./chunk-ZANLILYD.js";
|
|
97
97
|
import "./chunk-2EECBNC5.js";
|
|
98
|
-
import "./chunk-
|
|
99
|
-
import "./chunk-
|
|
100
|
-
import "./chunk-
|
|
101
|
-
import "./chunk-
|
|
98
|
+
import "./chunk-JAU72XNY.js";
|
|
99
|
+
import "./chunk-XTMJ7XDT.js";
|
|
100
|
+
import "./chunk-JMYYOTQG.js";
|
|
101
|
+
import "./chunk-QQNQ7SJW.js";
|
|
102
|
+
import "./chunk-AOHZU2BM.js";
|
|
102
103
|
import "./chunk-LJDODBBZ.js";
|
|
103
|
-
import "./chunk-
|
|
104
|
+
import "./chunk-CHOW74WE.js";
|
|
104
105
|
import "./chunk-ABBOA7UD.js";
|
|
105
|
-
import "./chunk-
|
|
106
|
+
import "./chunk-N2H3ZPZY.js";
|
|
106
107
|
import "./chunk-NXL4FFQQ.js";
|
|
107
108
|
export {
|
|
108
109
|
GRAPH_PERSIST_MAX_ELEMENTS_DEFAULT,
|
|
@@ -2,7 +2,7 @@ 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,
|
|
@@ -10,13 +10,13 @@ import {
|
|
|
10
10
|
describeProbeEvidence,
|
|
11
11
|
logAvailabilityDecision,
|
|
12
12
|
startHostStallSampler
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-VRZP76YM.js";
|
|
14
14
|
import {
|
|
15
15
|
createSingleFlight
|
|
16
16
|
} from "./chunk-BW5KFIQC.js";
|
|
17
17
|
import {
|
|
18
18
|
createSubsystemLogger
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-XTMJ7XDT.js";
|
|
20
20
|
|
|
21
21
|
// dist/clients/security-scan-client.js
|
|
22
22
|
import * as path from "node:path";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
configureLspServiceLifecycle,
|
|
4
|
+
getOwnedLspService,
|
|
5
|
+
peekOwnedLspService,
|
|
6
|
+
resetOwnedLspService
|
|
7
|
+
} from "./chunk-MQLUAEOC.js";
|
|
8
|
+
import "./chunk-QQNQ7SJW.js";
|
|
9
|
+
import "./chunk-AOHZU2BM.js";
|
|
10
|
+
import "./chunk-N2H3ZPZY.js";
|
|
11
|
+
import "./chunk-NXL4FFQQ.js";
|
|
12
|
+
export {
|
|
13
|
+
configureLspServiceLifecycle,
|
|
14
|
+
getOwnedLspService,
|
|
15
|
+
peekOwnedLspService,
|
|
16
|
+
resetOwnedLspService
|
|
17
|
+
};
|
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
import { createRequire as __pilensCreateRequire } from "node:module"; const require = __pilensCreateRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
getStartupScanMaxSourceFilesDerived
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-GAEGEPOC.js";
|
|
5
5
|
import {
|
|
6
6
|
shouldRecurseIntoDir,
|
|
7
7
|
walkTreeStackAsync,
|
|
8
8
|
walkTreeStackSync
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-5NGR67U5.js";
|
|
10
10
|
import {
|
|
11
11
|
getProjectIgnoreMatcher
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-C34ZXZ7O.js";
|
|
13
13
|
import {
|
|
14
14
|
getDirectoryMarkers,
|
|
15
15
|
registerWorkspaceTopologyReset
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-XVF2VVXP.js";
|
|
17
17
|
import {
|
|
18
18
|
lazyEnvNumber
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-AOHZU2BM.js";
|
|
20
20
|
import {
|
|
21
21
|
BoundedLruCache
|
|
22
22
|
} from "./chunk-ABBOA7UD.js";
|
|
23
23
|
import {
|
|
24
24
|
isAtOrAboveHomeDir,
|
|
25
25
|
normalizeMapKey
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-N2H3ZPZY.js";
|
|
27
27
|
|
|
28
28
|
// dist/clients/startup-scan.js
|
|
29
29
|
import * as os from "node:os";
|