lurqrun 0.1.6 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +311 -139
- package/dist/auditHandler-VWCXSDVO.js +24 -0
- package/dist/autopilotInit-Q62MX5M6.js +178 -0
- package/dist/bin/lurq.js +3255 -23319
- package/dist/browserAuth-J7APSD4P.js +96 -0
- package/dist/cache-AEAKCV4I.js +12 -0
- package/dist/check-2JTQDQA6.js +2613 -0
- package/dist/check-PQSQ2MMA.js +192 -0
- package/dist/checkUpgrade-5YW77OBL.js +24 -0
- package/dist/chunk-2GAYNIHG.js +40 -0
- package/dist/chunk-2O6Z37IT.js +423 -0
- package/dist/chunk-2WD4QAH4.js +116 -0
- package/dist/chunk-3676XOBU.js +2235 -0
- package/dist/chunk-3D2MPGOQ.js +181 -0
- package/dist/chunk-3GHJR7XR.js +2049 -0
- package/dist/chunk-4ESO33J6.js +34 -0
- package/dist/chunk-4JHDSVIN.js +1229 -0
- package/dist/chunk-4KCPOMG6.js +68 -0
- package/dist/chunk-53SG6XWA.js +141 -0
- package/dist/chunk-5ABNDB3I.js +37 -0
- package/dist/chunk-5ALIJFDA.js +114 -0
- package/dist/chunk-63MUJNZL.js +318 -0
- package/dist/chunk-64ZF7KO4.js +1571 -0
- package/dist/chunk-6DM6UQFD.js +318 -0
- package/dist/chunk-6EQ3ARXA.js +304 -0
- package/dist/chunk-6L67QMCP.js +92 -0
- package/dist/chunk-72Y2FDVS.js +172 -0
- package/dist/chunk-A3TYI2TF.js +288 -0
- package/dist/chunk-B2UUYRBX.js +536 -0
- package/dist/chunk-BJT2LHAR.js +320 -0
- package/dist/chunk-BM3LF5T6.js +132 -0
- package/dist/chunk-BN3NM47Q.js +214 -0
- package/dist/chunk-BUALU27S.js +123 -0
- package/dist/chunk-C6GLE626.js +160 -0
- package/dist/chunk-D3K6IZVR.js +12845 -0
- package/dist/chunk-D3VTZS7V.js +222 -0
- package/dist/chunk-DM37MTOO.js +636 -0
- package/dist/chunk-DONTW3NE.js +171 -0
- package/dist/chunk-DSROTZ3Z.js +38 -0
- package/dist/chunk-ELGCAM7P.js +184 -0
- package/dist/chunk-EQCXENKZ.js +130 -0
- package/dist/chunk-EYAKM6YN.js +96 -0
- package/dist/chunk-FDFPMBCA.js +112 -0
- package/dist/chunk-FVYFV5HA.js +154 -0
- package/dist/chunk-GE37NVLN.js +15 -0
- package/dist/chunk-GM5Y555O.js +143 -0
- package/dist/chunk-GRJXQBQZ.js +793 -0
- package/dist/chunk-HWFX4BC4.js +177 -0
- package/dist/chunk-I3M2KJXB.js +56 -0
- package/dist/chunk-IFNONGRQ.js +603 -0
- package/dist/chunk-J3U2CPSK.js +136 -0
- package/dist/chunk-J6XQ7OPZ.js +74 -0
- package/dist/chunk-KMV4Y6R3.js +127 -0
- package/dist/chunk-KP5ZDDPE.js +340 -0
- package/dist/chunk-KYKSZ3XZ.js +202 -0
- package/dist/chunk-LEGPB7DO.js +81 -0
- package/dist/chunk-LUAKDHLZ.js +40 -0
- package/dist/chunk-MHUEVBVO.js +35 -0
- package/dist/chunk-MYGSLK44.js +37 -0
- package/dist/chunk-NEZNAPPN.js +41 -0
- package/dist/chunk-NPVN2THM.js +197 -0
- package/dist/chunk-NYZU5NCW.js +23 -0
- package/dist/chunk-O4KHCV6I.js +320 -0
- package/dist/chunk-ONDVTXUO.js +240 -0
- package/dist/chunk-OTJFHESY.js +176 -0
- package/dist/chunk-P6MIKSPY.js +243 -0
- package/dist/chunk-Q5VPF4WI.js +26 -0
- package/dist/chunk-QCRBX3LV.js +165 -0
- package/dist/chunk-QKGYDMWB.js +7409 -0
- package/dist/chunk-QSL6QN5X.js +115 -0
- package/dist/chunk-QUIMQ7YL.js +73 -0
- package/dist/chunk-RG3YLU6E.js +49 -0
- package/dist/chunk-SHCEBP3J.js +107 -0
- package/dist/chunk-SHZFOSXC.js +462 -0
- package/dist/chunk-SOXFMMXC.js +151 -0
- package/dist/chunk-TDTYV6QI.js +119 -0
- package/dist/chunk-TNTXWSYA.js +19 -0
- package/dist/chunk-TUXQ32WE.js +2251 -0
- package/dist/chunk-VGCDRK3S.js +37 -0
- package/dist/chunk-VLRHFMGJ.js +58 -0
- package/dist/chunk-WHX2ZFCG.js +4048 -0
- package/dist/chunk-X4W64MHU.js +2005 -0
- package/dist/chunk-XBQA4I36.js +92 -0
- package/dist/chunk-XGOV6KV4.js +413 -0
- package/dist/chunk-XIFQIFSZ.js +940 -0
- package/dist/chunk-XLXPVN3Y.js +15393 -0
- package/dist/chunk-ZJMLQ37G.js +90 -0
- package/dist/client-MU4EUDZV.js +15 -0
- package/dist/commands-UOOTMBKA.js +1023 -0
- package/dist/compat-Q5DVPITN.js +201 -0
- package/dist/constants-DJFOFZ44.js +24 -0
- package/dist/dashboardIssue-KBKLQMGC.js +274 -0
- package/dist/diff-I4SNUHU3.js +13 -0
- package/dist/dist-4XXIXHHZ.js +12945 -0
- package/dist/domains-VRT4BRVZ.js +14 -0
- package/dist/e2b-FVPHDULZ.js +172 -0
- package/dist/env-UN6KGZ7S.js +15 -0
- package/dist/envCheck-KUPTORFQ.js +71 -0
- package/dist/extract-6WG265BL.js +455 -0
- package/dist/fetch-PJ3SC32M.js +22 -0
- package/dist/firstTouch-COJCMOB3.js +55 -0
- package/dist/fix-3EDWNKW3.js +220 -0
- package/dist/handlers-4Q37WIFT.js +55 -0
- package/dist/hook-NA66XJLC.js +412 -0
- package/dist/http-25GJ6SKK.js +6928 -0
- package/dist/ingestQueue-FSVJC3AA.js +37 -0
- package/dist/install-G2HHXYJ2.js +20 -0
- package/dist/installSkill-5TIMYIJZ.js +70 -0
- package/dist/inventory-5AWSLJYU.js +31 -0
- package/dist/local-XPZMRH5R.js +13 -0
- package/dist/manifest-ENMIC54B.js +13 -0
- package/dist/mcp-PENLL2PK.js +500 -0
- package/dist/mcpConfig-3LYPRY5Q.js +80 -0
- package/dist/mcpHandlers-PO7GENA7.js +22 -0
- package/dist/mcpScan-ULP626TQ.js +1735 -0
- package/dist/mcpScanWorkflow-27O44FOE.js +98 -0
- package/dist/mcpStack-ZNYIFXZ5.js +20 -0
- package/dist/model-ASMZWLM7.js +214 -0
- package/dist/packages-RWF2LXST.js +40 -0
- package/dist/plan-SDILIDZT.js +465 -0
- package/dist/planView-ZAKRTGVS.js +82 -0
- package/dist/policy-JAGNMQJI.js +115 -0
- package/dist/probe-3IK646WN.js +610 -0
- package/dist/publicUpgrades-WTBGLDIK.js +42 -0
- package/dist/references-I6Y4BSRR.js +16 -0
- package/dist/release-7IU2R4YG.js +128 -0
- package/dist/remote-FN6225AH.js +42 -0
- package/dist/rename-OS6JYBZQ.js +204 -0
- package/dist/reportRuns-O4X7ZFTX.js +77 -0
- package/dist/safeFetch-COERXGFN.js +19 -0
- package/dist/sandbox-SAPSRKEI.js +39 -0
- package/dist/sarif-WLVJFJ7U.js +125 -0
- package/dist/server-OLTY3NYT.js +59 -0
- package/dist/surface-7MHE3RL7.js +143 -0
- package/dist/surface-JS2XU3U3.js +38 -0
- package/dist/surfaceHandlers-4B6TMZ34.js +20 -0
- package/dist/typecheck-NGOKNAJY.js +282 -0
- package/dist/types-M5JP2W3D.js +10 -0
- package/dist/uninstall-I2IJP5JZ.js +200 -0
- package/dist/upgrade-FS26DJGG.js +650 -0
- package/dist/upgradePlan-ZS5IOVMZ.js +181 -0
- package/dist/upkeepHandler-VFGYXJKB.js +13 -0
- package/dist/userConfig-ICASHI47.js +20 -0
- package/dist/watch-OCNEUXG6.js +204 -0
- package/package.json +26 -20
- package/templates/agent-rules.md +4 -4
- package/templates/skill-instructions.md +35 -17
- package/dist/bin/lurq.js.map +0 -1
- package/dist/index.d.ts +0 -805
- package/dist/index.js +0 -23570
- package/dist/index.js.map +0 -1
- package/drizzle/0000_confused_fabian_cortez.sql +0 -54
- package/drizzle/0001_aspiring_timeslip.sql +0 -15
- package/drizzle/0002_lyrical_lila_cheney.sql +0 -14
- package/drizzle/0003_violet_giant_girl.sql +0 -14
- package/drizzle/0004_slim_valeria_richards.sql +0 -15
- package/drizzle/0005_petite_luke_cage.sql +0 -12
- package/drizzle/0006_calm_nighthawk.sql +0 -3
- package/drizzle/0007_slimy_naoko.sql +0 -1
- package/drizzle/0008_peaceful_tigra.sql +0 -1
- package/drizzle/0009_smooth_harrier.sql +0 -10
- package/drizzle/0010_curved_amphibian.sql +0 -2
- package/drizzle/0011_compat_provenance_closures.sql +0 -11
- package/drizzle/0012_api_surfaces.sql +0 -9
- package/drizzle/0013_nice_thanos.sql +0 -1
- package/drizzle/0014_luxuriant_malcolm_colcord.sql +0 -10
- package/drizzle/0015_past_fat_cobra.sql +0 -11
- package/drizzle/0016_futuristic_junta.sql +0 -50
- package/drizzle/0017_absent_grandmaster.sql +0 -20
- package/drizzle/0018_rainy_proemial_gods.sql +0 -1
- package/drizzle/0019_dashing_korvac.sql +0 -11
- package/drizzle/0020_normal_vulture.sql +0 -3
- package/drizzle/0021_dazzling_blue_shield.sql +0 -17
- package/drizzle/0022_massive_ghost_rider.sql +0 -24
- package/drizzle/0023_next_shatterstar.sql +0 -1
- package/drizzle/0024_dusty_maelstrom.sql +0 -15
- package/drizzle/0025_gifted_harpoon.sql +0 -5
- package/drizzle/0026_awesome_mordo.sql +0 -1
- package/drizzle/0027_charming_ulik.sql +0 -2
- package/drizzle/0028_romantic_loners.sql +0 -2
- package/drizzle/0029_busy_korvac.sql +0 -16
- package/drizzle/0030_steady_mathemanic.sql +0 -6
- package/drizzle/0031_redundant_maginty.sql +0 -2
- package/drizzle/0032_stack_resolutions.sql +0 -14
- package/drizzle/0033_graceful_tyger_tiger.sql +0 -3
- package/drizzle/0034_uneven_thunderbird.sql +0 -1
- package/drizzle/0035_api_key_scopes.sql +0 -1
- package/drizzle/0036_policy_audit.sql +0 -21
- package/drizzle/0037_subscription_seats.sql +0 -1
- package/drizzle/0038_symbol_offsets.sql +0 -2
- package/drizzle/0039_mcp_runtime_scans.sql +0 -80
- package/drizzle/0040_subscription_overage_and_interval.sql +0 -4
- package/drizzle/0041_account_email.sql +0 -38
- package/drizzle/0042_alert_channels.sql +0 -21
- package/drizzle/meta/0000_snapshot.json +0 -370
- package/drizzle/meta/0001_snapshot.json +0 -482
- package/drizzle/meta/0002_snapshot.json +0 -575
- package/drizzle/meta/0003_snapshot.json +0 -667
- package/drizzle/meta/0004_snapshot.json +0 -769
- package/drizzle/meta/0005_snapshot.json +0 -864
- package/drizzle/meta/0006_snapshot.json +0 -882
- package/drizzle/meta/0007_snapshot.json +0 -876
- package/drizzle/meta/0008_snapshot.json +0 -882
- package/drizzle/meta/0009_snapshot.json +0 -948
- package/drizzle/meta/0010_snapshot.json +0 -969
- package/drizzle/meta/0011_snapshot.json +0 -1049
- package/drizzle/meta/0012_snapshot.json +0 -1115
- package/drizzle/meta/0013_snapshot.json +0 -1121
- package/drizzle/meta/0014_snapshot.json +0 -1190
- package/drizzle/meta/0015_snapshot.json +0 -1280
- package/drizzle/meta/0016_snapshot.json +0 -1683
- package/drizzle/meta/0017_snapshot.json +0 -1834
- package/drizzle/meta/0018_snapshot.json +0 -1834
- package/drizzle/meta/0019_snapshot.json +0 -1909
- package/drizzle/meta/0020_snapshot.json +0 -1921
- package/drizzle/meta/0021_snapshot.json +0 -2045
- package/drizzle/meta/0022_snapshot.json +0 -2246
- package/drizzle/meta/0023_snapshot.json +0 -2252
- package/drizzle/meta/0024_snapshot.json +0 -2375
- package/drizzle/meta/0025_snapshot.json +0 -2407
- package/drizzle/meta/0026_snapshot.json +0 -2413
- package/drizzle/meta/0027_snapshot.json +0 -2425
- package/drizzle/meta/0028_snapshot.json +0 -2438
- package/drizzle/meta/0029_snapshot.json +0 -2546
- package/drizzle/meta/0030_snapshot.json +0 -2586
- package/drizzle/meta/0031_snapshot.json +0 -2598
- package/drizzle/meta/0032_snapshot.json +0 -2699
- package/drizzle/meta/0033_snapshot.json +0 -2712
- package/drizzle/meta/0034_snapshot.json +0 -2719
- package/drizzle/meta/0035_snapshot.json +0 -2726
- package/drizzle/meta/0036_snapshot.json +0 -2876
- package/drizzle/meta/0037_snapshot.json +0 -2883
- package/drizzle/meta/0038_snapshot.json +0 -2895
- package/drizzle/meta/0039_snapshot.json +0 -3501
- package/drizzle/meta/0040_snapshot.json +0 -3527
- package/drizzle/meta/0041_snapshot.json +0 -3824
- package/drizzle/meta/0042_snapshot.json +0 -3960
- package/drizzle/meta/_journal.json +0 -307
- package/src/data/seed.json +0 -253
package/README.md
CHANGED
|
@@ -2,187 +2,300 @@
|
|
|
2
2
|
|
|
3
3
|
# lurq
|
|
4
4
|
|
|
5
|
-
**The verification layer for
|
|
5
|
+
**The verification layer for everything your agent installs.**
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
Your coding agent picks npm packages from memory. lurq checks them against the live
|
|
8
|
+
registry, security advisories, shipped type definitions and real co-installs, before
|
|
9
|
+
anything lands in `package.json`.
|
|
9
10
|
|
|
10
11
|
[](https://www.npmjs.com/package/lurqrun)
|
|
11
12
|
[](https://www.npmjs.com/package/lurqrun)
|
|
13
|
+
[](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.jadenryu/lurq)
|
|
12
14
|
[](LICENSE)
|
|
13
15
|
[](https://nodejs.org)
|
|
14
|
-
[](https://modelcontextprotocol.io)
|
|
15
16
|
|
|
16
|
-
[
|
|
17
|
+
[Install](#install) · [For AI agents](#for-ai-agents) · [MCP tools](#mcp-tools) · [CLI](#cli) · [Autopilot](#autopilot) · [Docs](https://www.lurq.run/docs)
|
|
17
18
|
|
|
18
19
|
</div>
|
|
19
20
|
|
|
21
|
+
```text
|
|
22
|
+
$ lurq verify lodahs
|
|
23
|
+
lodahs ✗ do not install 0.0.1-security (latest) without review
|
|
24
|
+
• name closely mimics "lodash" — possible typosquat
|
|
25
|
+
• 1 critical/high advisory(ies) recorded against this package
|
|
26
|
+
risk flags: possible-typosquat-of:lodash, low-downloads, single-maintainer, has-known-advisory
|
|
27
|
+
|
|
28
|
+
$ lurq verify zod
|
|
29
|
+
zod ✓ no supply-chain problems found in 4.6.4 (latest)
|
|
30
|
+
weekly dl: 209.2M confidence: proven advisories: 0
|
|
31
|
+
|
|
32
|
+
$ lurq compat next @auth/core next-auth
|
|
33
|
+
next + @auth/core + next-auth conflict
|
|
34
|
+
peer-deps next-auth needs peer @auth/core@0.34.3, but the stack uses @auth/core@0.41.3
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Real output, not a mockup. Your agent gets the same answers over MCP.
|
|
38
|
+
|
|
20
39
|
---
|
|
21
40
|
|
|
22
|
-
## Why
|
|
41
|
+
## Why your agent needs this
|
|
23
42
|
|
|
24
|
-
|
|
43
|
+
A model's knowledge of npm stops at its training cutoff. The registry doesn't.
|
|
25
44
|
|
|
26
|
-
|
|
45
|
+
- **Invented and typosquatted names.** Agents confidently install packages that don't exist, or that
|
|
46
|
+
exist only because someone registered the misspelling.
|
|
47
|
+
- **APIs that moved.** Of the 38,752 packages lurq tracks, 2,725 shipped a new major version between
|
|
48
|
+
May 1 and September 13, 2026. Code written from memory calls functions that were renamed or removed.
|
|
49
|
+
- **Stacks that don't install together.** Every package can be healthy on its own while the set
|
|
50
|
+
fails on a peer or engine range. That usually surfaces at deploy.
|
|
27
51
|
|
|
28
|
-
lurq
|
|
29
|
-
|
|
30
|
-
|
|
52
|
+
lurq answers from evidence it can show: **47,238 packages scored, 4.2M versions tracked, 34,843 API
|
|
53
|
+
surfaces extracted from shipped code, and 27M co-install pairs**, refreshed daily from npm, GitHub,
|
|
54
|
+
deps.dev and OSV. Every answer carries a `dataAsOf` timestamp.
|
|
31
55
|
|
|
32
|
-
> **Scope:** the JavaScript/TypeScript
|
|
56
|
+
> **Scope:** the JavaScript/TypeScript ecosystem (npm).
|
|
33
57
|
|
|
34
58
|
---
|
|
35
59
|
|
|
36
|
-
##
|
|
60
|
+
## Install
|
|
37
61
|
|
|
38
|
-
|
|
39
|
-
with nothing installed first:
|
|
62
|
+
One command, once per machine. Nothing to install first:
|
|
40
63
|
|
|
41
64
|
```bash
|
|
42
65
|
npx lurqrun
|
|
43
66
|
```
|
|
44
67
|
|
|
45
|
-
|
|
46
|
-
detects your installed assistants and writes a remote MCP entry.
|
|
68
|
+
The setup wizard:
|
|
47
69
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
70
|
+
1. Opens lurq in your browser. Sign in and the key comes back to the terminal by itself.
|
|
71
|
+
2. Detects every coding agent on the machine.
|
|
72
|
+
3. Writes a keyed remote MCP entry for each, in the shape that agent expects.
|
|
73
|
+
4. Installs standing instructions where the agent supports them, so it reaches for lurq instead of
|
|
74
|
+
answering from memory.
|
|
75
|
+
|
|
76
|
+
Restart your agent afterward. **The free plan includes 1,000 hosted calls a month and never asks
|
|
77
|
+
for a card.**
|
|
78
|
+
|
|
79
|
+
**Works with:** Claude Code · Cursor · Windsurf · VS Code / GitHub Copilot · OpenAI Codex CLI ·
|
|
80
|
+
Gemini CLI · Google Antigravity · Kiro
|
|
81
|
+
|
|
82
|
+
**Check it worked:** ask your agent to _"add zod to this project"_. It should call lurq's `verify`
|
|
83
|
+
before installing anything.
|
|
84
|
+
|
|
85
|
+
**Claude Code plugin**, no terminal needed:
|
|
55
86
|
|
|
56
|
-
|
|
87
|
+
```text
|
|
88
|
+
/plugin marketplace add jadenryu/lurq
|
|
89
|
+
/plugin install lurq@lurq
|
|
90
|
+
```
|
|
57
91
|
|
|
58
|
-
|
|
92
|
+
One-click links for Cursor and VS Code are in the
|
|
93
|
+
[quickstart](https://www.lurq.run/docs/quickstart#one-click-install).
|
|
59
94
|
|
|
60
|
-
The package is published as **`lurqrun
|
|
61
|
-
installed.
|
|
95
|
+
The package is published as **`lurqrun`** (the bare name was taken). The command is `lurq`:
|
|
62
96
|
|
|
63
97
|
```bash
|
|
64
|
-
npm install -g lurqrun
|
|
98
|
+
npm install -g lurqrun
|
|
65
99
|
lurq --version
|
|
66
100
|
```
|
|
67
101
|
|
|
68
|
-
|
|
69
|
-
<summary><b>Supported assistants</b></summary>
|
|
102
|
+
---
|
|
70
103
|
|
|
71
|
-
|
|
72
|
-
Antigravity · Kiro
|
|
104
|
+
## For AI agents
|
|
73
105
|
|
|
74
|
-
|
|
75
|
-
self-host against your own database with `--local`.
|
|
106
|
+
If you are an AI coding agent and your user asked you to set up lurq, follow these steps.
|
|
76
107
|
|
|
77
|
-
|
|
108
|
+
**1. Run setup.**
|
|
78
109
|
|
|
79
|
-
|
|
80
|
-
|
|
110
|
+
```bash
|
|
111
|
+
npx lurqrun setup
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
In your shell it does not prompt: it prints a one-time sign-in link and exits right away. Give the
|
|
115
|
+
user that link. When they sign in on this computer, lurq stores a key and connects every detected
|
|
116
|
+
coding agent by itself. Never invent a key.
|
|
81
117
|
|
|
82
|
-
**
|
|
118
|
+
**2. Or configure non-interactively** when the user already has a key from
|
|
119
|
+
[lurq.run/dashboard/keys](https://www.lurq.run/dashboard/keys), or on a cloud, SSH or CI machine, where
|
|
120
|
+
a sign-in link on this computer can't work:
|
|
83
121
|
|
|
84
122
|
```bash
|
|
85
|
-
npx lurqrun
|
|
123
|
+
npx lurqrun setup --yes --no-open --api-key <key> --agent <id>
|
|
86
124
|
```
|
|
87
125
|
|
|
88
|
-
|
|
126
|
+
| Agent | `--agent` |
|
|
127
|
+
| ------------------------ | ------------- |
|
|
128
|
+
| Claude Code | `claude-code` |
|
|
129
|
+
| Cursor | `cursor` |
|
|
130
|
+
| Windsurf | `windsurf` |
|
|
131
|
+
| VS Code / GitHub Copilot | `copilot` |
|
|
132
|
+
| OpenAI Codex CLI | `codex` |
|
|
133
|
+
| Gemini CLI | `gemini-cli` |
|
|
134
|
+
| Google Antigravity | `antigravity` |
|
|
135
|
+
| Kiro | `kiro` |
|
|
89
136
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
137
|
+
`--agent all` configures every detected agent. With `--yes`, the key can also come from `LURQ_API_KEY`.
|
|
138
|
+
|
|
139
|
+
Some checks need no key at all. `npx lurqrun check-upgrade --upgrade <package>@<from>..<to>` compares an
|
|
140
|
+
upgrade against the names your code actually imports, locally.
|
|
141
|
+
|
|
142
|
+
**3. Tell the user to restart the agent**, then confirm `lurq` appears in its MCP tool list.
|
|
143
|
+
|
|
144
|
+
<details>
|
|
145
|
+
<summary><b>Writing the MCP config by hand</b></summary>
|
|
146
|
+
|
|
147
|
+
Endpoint: `https://api.lurq.run/mcp` (streamable HTTP), header `Authorization: Bearer <key>`. The
|
|
148
|
+
field names differ by client:
|
|
149
|
+
|
|
150
|
+
**Claude Code** (`~/.claude.json`, under `mcpServers`) and **VS Code** (`mcp.json`, under `servers`):
|
|
151
|
+
|
|
152
|
+
```json
|
|
153
|
+
"lurq": { "type": "http", "url": "https://api.lurq.run/mcp", "headers": { "Authorization": "Bearer <key>" } }
|
|
93
154
|
```
|
|
94
155
|
|
|
95
|
-
|
|
96
|
-
use:
|
|
156
|
+
**Cursor** (`~/.cursor/mcp.json`) and **Kiro** (`~/.kiro/settings/mcp.json`), under `mcpServers`:
|
|
97
157
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
| Cursor | `~/.cursor/mcp.json` | |
|
|
102
|
-
| Windsurf | `~/.codeium/windsurf/mcp_config.json` | `~/.codeium/windsurf/memories/global_rules.md` |
|
|
103
|
-
| VS Code / Copilot | `<VS Code user dir>/mcp.json` | |
|
|
104
|
-
| Codex | `~/.codex/config.toml` | `~/.codex/AGENTS.md` |
|
|
105
|
-
| Gemini CLI | `~/.gemini/settings.json` | `~/.gemini/GEMINI.md` |
|
|
106
|
-
| Antigravity | `~/.gemini/config/mcp_config.json` | `~/.gemini/GEMINI.md` |
|
|
107
|
-
| Kiro | `~/.kiro/settings/mcp.json` | `~/.kiro/steering/lurq.md` |
|
|
158
|
+
```json
|
|
159
|
+
"lurq": { "url": "https://api.lurq.run/mcp", "headers": { "Authorization": "Bearer <key>" } }
|
|
160
|
+
```
|
|
108
161
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
162
|
+
**Windsurf** (`~/.codeium/windsurf/mcp_config.json`) and **Antigravity** (`~/.gemini/config/mcp_config.json`), under `mcpServers`:
|
|
163
|
+
|
|
164
|
+
```json
|
|
165
|
+
"lurq": { "serverUrl": "https://api.lurq.run/mcp", "headers": { "Authorization": "Bearer <key>" } }
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
**Gemini CLI** (`~/.gemini/settings.json`, under `mcpServers`). It must be `httpUrl`, because a
|
|
169
|
+
plain `url` is read as SSE:
|
|
170
|
+
|
|
171
|
+
```json
|
|
172
|
+
"lurq": { "httpUrl": "https://api.lurq.run/mcp", "headers": { "Authorization": "Bearer <key>" } }
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
**Codex** (`~/.codex/config.toml`). Headers go in an inline table:
|
|
176
|
+
|
|
177
|
+
```toml
|
|
178
|
+
[mcp_servers.lurq]
|
|
179
|
+
url = "https://api.lurq.run/mcp"
|
|
180
|
+
http_headers = { Authorization = "Bearer <key>" }
|
|
181
|
+
```
|
|
112
182
|
|
|
113
183
|
</details>
|
|
114
184
|
|
|
185
|
+
### When to call lurq
|
|
186
|
+
|
|
187
|
+
| You are about to… | Call |
|
|
188
|
+
| ----------------------------------------------------- | -------------------------------------------------------------------- |
|
|
189
|
+
| Install or import a package | `verify` with the exact name, first |
|
|
190
|
+
| Choose between libraries | `compare` your candidates, then `verify` the pick |
|
|
191
|
+
| Commit to a set of packages | `compat` with the whole set in one call |
|
|
192
|
+
| Write code against a package whose API may have moved | `usage`, with the version you remember as `knownVersion` |
|
|
193
|
+
| Upgrade, or explain a break | `diff_surface` between the two versions |
|
|
194
|
+
| Add dependencies in a team codebase | `policy`, before choosing |
|
|
195
|
+
| Review a whole project | `audit` with names and versions from `package.json` and the lockfile |
|
|
196
|
+
| Wire an MCP server into an agent | `mcp_surface`, or `mcp_stack` for several |
|
|
197
|
+
| Not sure which tool fits | `capabilities` |
|
|
198
|
+
|
|
199
|
+
When lurq flags something, tell the user what it found and that it came from lurq. An `unknown` or
|
|
200
|
+
`UNVERIFIABLE` result means lurq could not check. It never means the package is clean.
|
|
201
|
+
|
|
202
|
+
Machine-readable docs: [lurq.run/llms.txt](https://www.lurq.run/llms.txt) ·
|
|
203
|
+
[lurq.run/docs/llms-full.txt](https://www.lurq.run/docs/llms-full.txt)
|
|
204
|
+
|
|
115
205
|
---
|
|
116
206
|
|
|
117
207
|
## MCP tools
|
|
118
208
|
|
|
119
|
-
|
|
120
|
-
|
|
209
|
+
Fifteen tools. Responses are compact to save tokens, and package answers carry `dataAsOf`.
|
|
210
|
+
|
|
211
|
+
**Before installing**
|
|
212
|
+
|
|
213
|
+
| Tool | What it answers |
|
|
214
|
+
| ---------- | -------------------------------------------------------------------------------------- |
|
|
215
|
+
| `verify` | Is this package real, healthy and safe? Catches hallucinated and typosquatted names |
|
|
216
|
+
| `evaluate` | The full evidence for one package: scores, advisories, usage guide, sandbox verdict |
|
|
217
|
+
| `compare` | 2–5 packages ranked head-to-head |
|
|
218
|
+
| `policy` | What your team's selection policy refuses, so the agent picks an allowed package first |
|
|
219
|
+
|
|
220
|
+
**Across a stack**
|
|
221
|
+
|
|
222
|
+
| Tool | What it answers |
|
|
223
|
+
| --------- | ------------------------------------------------------------------------------------------------------- |
|
|
224
|
+
| `compat` | Will these packages install together? Returns the exact clashing peer or engine range |
|
|
225
|
+
| `audit` | A whole project's outdated, deprecated and vulnerable dependencies and drifted MCP servers, in one call |
|
|
226
|
+
| `diagram` | A reference-architecture Mermaid diagram for a stack |
|
|
227
|
+
|
|
228
|
+
**Writing code**
|
|
229
|
+
|
|
230
|
+
| Tool | What it answers |
|
|
231
|
+
| ----------------- | ------------------------------------------------------------------------------------------------- |
|
|
232
|
+
| `usage` | A version's real public API from its shipped `.d.ts`, and what changed since the version you know |
|
|
233
|
+
| `resolve_surface` | What a version actually exports at runtime |
|
|
234
|
+
| `diff_surface` | What a version bump adds, removes, renames or changes arity on |
|
|
235
|
+
|
|
236
|
+
**MCP servers**
|
|
237
|
+
|
|
238
|
+
| Tool | What it answers |
|
|
239
|
+
| ------------- | -------------------------------------------------------------------------------------------------------------- |
|
|
240
|
+
| `mcp_surface` | A server's real tool contract, from a live `tools/list` handshake, including what each tool can write or reach |
|
|
241
|
+
| `mcp_drift` | What a server changed between two versions |
|
|
242
|
+
| `mcp_stack` | Do these servers collide in one agent's tool namespace? |
|
|
243
|
+
|
|
244
|
+
**About lurq**
|
|
121
245
|
|
|
122
|
-
| Tool
|
|
123
|
-
|
|
124
|
-
| `
|
|
125
|
-
| `
|
|
126
|
-
| `verify` | Is this package real, healthy, and not risky? *(anti-hallucination guard)* |
|
|
127
|
-
| `compat` | Will these packages actually install together? (peer/engine constraints) |
|
|
128
|
-
| `diagram` | A reference-architecture Mermaid diagram for a stack |
|
|
129
|
-
| `usage` | A version's *real* public API — symbols and signatures from its shipped `.d.ts` |
|
|
130
|
-
| `resolve_surface` | The exact export surface of one package version |
|
|
131
|
-
| `diff_surface` | What a version bump adds, removes, renames, or changes arity on |
|
|
132
|
-
| `report_outcome` | What happened after a pick shipped — installed clean, broke the build, resolved the task |
|
|
246
|
+
| Tool | What it answers |
|
|
247
|
+
| ---------------- | --------------------------------------------------------------- |
|
|
248
|
+
| `capabilities` | Which lurq tool answers this situation |
|
|
249
|
+
| `report_outcome` | What happened after a pick shipped, which feeds future rankings |
|
|
133
250
|
|
|
134
|
-
|
|
135
|
-
exists in no changelog and no model's training data.
|
|
251
|
+
Inputs, outputs and verdict definitions for each: [MCP tools reference](https://www.lurq.run/docs/mcp-tools).
|
|
136
252
|
|
|
137
253
|
---
|
|
138
254
|
|
|
139
255
|
## CLI
|
|
140
256
|
|
|
141
|
-
The same index, scriptable. Every
|
|
257
|
+
The same index, scriptable. Every read command takes `--json`.
|
|
142
258
|
|
|
143
259
|
```bash
|
|
144
|
-
#
|
|
260
|
+
# Before installing
|
|
261
|
+
lurq verify jsonwebtoken
|
|
145
262
|
lurq evaluate zod
|
|
146
263
|
lurq compare date-fns dayjs moment
|
|
147
|
-
lurq verify jsonwebtoken
|
|
148
264
|
|
|
149
|
-
#
|
|
150
|
-
lurq
|
|
151
|
-
lurq
|
|
265
|
+
# Stacks and projects
|
|
266
|
+
lurq compat next react react-dom
|
|
267
|
+
lurq audit . # every dependency and MCP server in the project
|
|
152
268
|
|
|
153
|
-
#
|
|
154
|
-
lurq
|
|
155
|
-
|
|
156
|
-
# Upgrades
|
|
269
|
+
# APIs and upgrades
|
|
270
|
+
lurq usage zod --known 3.22.4 # what changed since the version you know
|
|
157
271
|
lurq upgrade-plan . # what's behind, and what each upgrade removes
|
|
158
272
|
lurq check-upgrade . --plan lurq-plan.json --exit-code
|
|
159
273
|
|
|
160
|
-
#
|
|
274
|
+
# Publishing your own package
|
|
161
275
|
lurq check-release # is the version you're about to publish honest?
|
|
162
|
-
lurq check-api --against origin/main # does this break
|
|
276
|
+
lurq check-api --against origin/main # does this break your API's callers?
|
|
163
277
|
|
|
164
|
-
#
|
|
165
|
-
lurq
|
|
278
|
+
# MCP servers
|
|
279
|
+
lurq mcp-scan # read the servers you have configured, record what changed
|
|
166
280
|
|
|
167
|
-
#
|
|
168
|
-
lurq
|
|
169
|
-
lurq
|
|
170
|
-
|
|
281
|
+
# Team policy
|
|
282
|
+
lurq policy pull policy.json # keep the selection policy in a reviewed file
|
|
283
|
+
lurq policy push policy.json # and apply it from CI (needs a policy:write key)
|
|
284
|
+
|
|
285
|
+
# Finding your way
|
|
286
|
+
lurq can "will this upgrade break my code" # which capability answers this?
|
|
171
287
|
```
|
|
172
288
|
|
|
173
|
-
|
|
289
|
+
Full reference: [CLI docs](https://www.lurq.run/docs/cli).
|
|
174
290
|
|
|
175
291
|
---
|
|
176
292
|
|
|
177
293
|
## Autopilot
|
|
178
294
|
|
|
179
|
-
lurq
|
|
180
|
-
upgrade breaks.**
|
|
181
|
-
|
|
182
|
-
lurq can open PRs addressing the symbol-level API surface diff
|
|
183
|
-
and resolve with what calls your code references.
|
|
295
|
+
lurq keeps a repository's dependencies current, and names the code an upgrade breaks before it merges.
|
|
184
296
|
|
|
185
|
-
|
|
297
|
+
The check reads the symbol-level API diff between versions and matches it against what your code
|
|
298
|
+
actually references. **It needs no tests.**
|
|
186
299
|
|
|
187
300
|
```
|
|
188
301
|
blocking a referenced symbol or deep import disappears,
|
|
@@ -193,70 +306,129 @@ ok nothing referenced is affected
|
|
|
193
306
|
unverified could not be established → never counted as safe
|
|
194
307
|
```
|
|
195
308
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
|
199
|
-
|
|
200
|
-
|
|
|
201
|
-
|
|
|
202
|
-
|
|
|
203
|
-
|
|
|
204
|
-
|
|
309
|
+
| Step | Runs on | Needs |
|
|
310
|
+
| ----------------------------------------------------------------------------------------------------- | ----------- | -------------------- |
|
|
311
|
+
| 1. `lurq upgrade-plan`: drift, plus what each upgrade removes | your runner | lurq key |
|
|
312
|
+
| 2. `lurq check-upgrade`: matched against your source, with `file:line` | your runner | nothing |
|
|
313
|
+
| 3. `lurq fix`: applies what the package itself proves — renames, and the range bump in every manifest | your runner | nothing |
|
|
314
|
+
| 4. `claude-code-action`: migrates what a rule cannot, and runs your tests | your runner | Anthropic credential |
|
|
315
|
+
| 5. `create-pull-request`: one branch, one PR | your runner | `GITHUB_TOKEN` |
|
|
316
|
+
| 6. Outcomes post back: names and counts, never source | lurq | nothing |
|
|
317
|
+
|
|
318
|
+
**Three modes, and editing is opt-in.** The workflow starts in `comment`: it plans, checks, writes the
|
|
319
|
+
brief to the run summary, and changes nothing. `fix` opens a pull request containing only what the
|
|
320
|
+
package itself proves — renamed call sites, and the range bump in every manifest — so it needs **no
|
|
321
|
+
Anthropic credential**, and it is what a newly armed repo gets. `pr` is `fix` plus the agent, for the
|
|
322
|
+
changes a rule cannot make. Step 4 above is the only one that needs a model, so only `pr` does.
|
|
323
|
+
|
|
324
|
+
The dashboard setting governs repos that already installed the workflow: each run reads the mode from
|
|
325
|
+
the plan response rather than from the committed file.
|
|
326
|
+
|
|
327
|
+
Cadence follows scope — weekly for the scopes that track breakage, since majors arrive slowly enough
|
|
328
|
+
that a daily run mostly reports nothing new; daily for a repo set to advisories-only, because weekly
|
|
329
|
+
can mean seven days sitting on a known CVE.
|
|
330
|
+
|
|
331
|
+
**Trust model.** lurq's GitHub App holds `Contents: read-only` and `Actions: write`. It can read your
|
|
332
|
+
manifests and _start_ the workflow you committed — it cannot write a byte to your repository, change
|
|
333
|
+
this file, or set a repository variable. Every write is made by the workflow itself using your own
|
|
334
|
+
ephemeral `GITHUB_TOKEN`, bounded by the `permissions:` block in the file you control. The agent's allowlist is
|
|
335
|
+
`Read,Edit,Write,Bash(<pkg-manager>:*)`, so it edits files but never touches version control.
|
|
336
|
+
Removing it is `git rm .github/workflows/lurq-upgrade.yml`.
|
|
205
337
|
|
|
206
|
-
|
|
207
|
-
plans, checks, and writes the brief to the run summary. Editing
|
|
208
|
-
is opt-in per repository. Click the policy tab to set global security parameters.
|
|
338
|
+
---
|
|
209
339
|
|
|
210
|
-
|
|
340
|
+
## What leaves your machine
|
|
211
341
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
limited to the `permissions:` block in your committed file.
|
|
216
|
-
- **The agent cannot touch version control.** Its allowlist is
|
|
217
|
-
`Read,Edit,Write,Bash(<pkg-manager>:*)`. Your agent can only edit
|
|
218
|
-
files.
|
|
219
|
-
- **Revoking it is `git rm .github/workflows/lurq-upgrade.yml`.**
|
|
342
|
+
Package names and versions, never your source code. `audit` receives the inventory your agent reads
|
|
343
|
+
locally, `check-upgrade` matches symbols against your code on your own runner, and outcomes report
|
|
344
|
+
names and counts only.
|
|
220
345
|
|
|
221
|
-
|
|
346
|
+
`lurq mcp-scan` is the one exception worth knowing: by default it records what your MCP servers
|
|
347
|
+
expose (tool names, descriptions and parameters, with secrets redacted) to your account, so it can
|
|
348
|
+
tell you what changed. `--no-upload` keeps the scan on your machine.
|
|
222
349
|
|
|
223
350
|
---
|
|
224
351
|
|
|
225
352
|
## Where the evidence comes from
|
|
226
353
|
|
|
227
|
-
**Readable
|
|
228
|
-
|
|
354
|
+
**Readable:** npm, GitHub, deps.dev and OSV, re-synced daily. Downloads, release cadence,
|
|
355
|
+
maintenance, advisories, deprecations, license and bundle cost.
|
|
356
|
+
|
|
357
|
+
**Executed:** an isolated sandbox installs and imports package versions and records the results in a
|
|
358
|
+
compatibility matrix. `compat` reads those edges alongside declared peer and engine ranges, which is
|
|
359
|
+
why lurq can say whether a whole stack holds together.
|
|
229
360
|
|
|
230
|
-
**
|
|
231
|
-
installs and imports a package version. Results are recorded in the compatibility matrix.
|
|
232
|
-
Compatibility is established through co-installation. `compat` reads those edges, which is why lurq can tell you
|
|
233
|
-
that an entire stack holds together.
|
|
361
|
+
**Ranking is deterministic and public.** No model sits in the scoring path:
|
|
234
362
|
|
|
235
|
-
|
|
363
|
+
```
|
|
364
|
+
health = maintenance 0.35 · adoption 0.30 · reliability 0.25 · efficiency 0.10
|
|
365
|
+
quality = types · tests · docs · changelog · dep count · license · provenance
|
|
366
|
+
composite = blend at a single tunable λ (default 0.35)
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
Every weight lives in [`src/scoring/weights.ts`](src/scoring/weights.ts) and prints with `lurq weights`.
|
|
236
370
|
|
|
237
371
|
---
|
|
238
372
|
|
|
239
|
-
##
|
|
373
|
+
## Plans
|
|
240
374
|
|
|
241
|
-
|
|
242
|
-
|
|
375
|
+
| Plan | Price | Hosted calls |
|
|
376
|
+
| -------- | --------------------------- | ----------------------------------- |
|
|
377
|
+
| Free | $0 | 1,000 a month |
|
|
378
|
+
| Pro | $15/mo | 10,000 a month |
|
|
379
|
+
| Team | $25/seat/mo, 3-seat minimum | 15,000 per seat, pooled |
|
|
380
|
+
| Business | from $1,000/mo | Uncapped, with SSO and audit export |
|
|
243
381
|
|
|
382
|
+
Past the limit, calls slow to 20 a day rather than stopping. The CLI run against your own database
|
|
383
|
+
is never metered. Details: [pricing](https://www.lurq.run/#pricing).
|
|
384
|
+
|
|
385
|
+
---
|
|
386
|
+
|
|
387
|
+
<details>
|
|
388
|
+
<summary><b>Uninstall, reinstall, and where setup writes</b></summary>
|
|
389
|
+
|
|
390
|
+
Setup is safe to re-run: `npx lurqrun` again overwrites the previous entries.
|
|
391
|
+
|
|
392
|
+
```bash
|
|
393
|
+
lurq uninstall # MCP entries, agent instructions, the stored key
|
|
394
|
+
lurq uninstall --agent cursor # just one agent
|
|
395
|
+
npm uninstall -g lurqrun # then remove the `lurq` command
|
|
244
396
|
```
|
|
245
|
-
health = maintenance 0.35 · adoption 0.30 · reliability 0.25 · efficiency 0.10
|
|
246
|
-
quality = types · tests · docs · changelog · dep count · license · provenance
|
|
247
|
-
composite = blend at a single tunable λ (default 0.35)
|
|
248
|
-
```
|
|
249
397
|
|
|
250
|
-
|
|
398
|
+
It lists what it will remove and asks first (`--yes` skips the question).
|
|
399
|
+
|
|
400
|
+
| Agent | MCP config | Instructions |
|
|
401
|
+
| ----------------- | ------------------------------------- | ---------------------------------------------- |
|
|
402
|
+
| Claude Code | `~/.claude.json` | `~/.claude/skills/lurq/SKILL.md` |
|
|
403
|
+
| Cursor | `~/.cursor/mcp.json` | none (tool descriptions carry the guidance) |
|
|
404
|
+
| Windsurf | `~/.codeium/windsurf/mcp_config.json` | `~/.codeium/windsurf/memories/global_rules.md` |
|
|
405
|
+
| VS Code / Copilot | `<VS Code user dir>/mcp.json` | none |
|
|
406
|
+
| Codex | `~/.codex/config.toml` | `~/.codex/AGENTS.md` |
|
|
407
|
+
| Gemini CLI | `~/.gemini/settings.json` | `~/.gemini/GEMINI.md` |
|
|
408
|
+
| Antigravity | `~/.gemini/config/mcp_config.json` | `~/.gemini/GEMINI.md` |
|
|
409
|
+
| Kiro | `~/.kiro/settings/mcp.json` | `~/.kiro/steering/lurq.md` |
|
|
410
|
+
|
|
411
|
+
`lurq logout` only clears the CLI's stored key. A copy stays in each MCP entry until `lurq uninstall`
|
|
412
|
+
removes it, and the key keeps working until you revoke it in
|
|
413
|
+
[the dashboard](https://www.lurq.run/dashboard/keys).
|
|
414
|
+
|
|
415
|
+
</details>
|
|
416
|
+
|
|
417
|
+
<details>
|
|
418
|
+
<summary><b>Self-hosting</b></summary>
|
|
251
419
|
|
|
252
|
-
|
|
253
|
-
|
|
420
|
+
lurq runs against your own Postgres too: `lurq serve` (stdio MCP) or `lurq serve-http` (a
|
|
421
|
+
rate-limited HTTP service), with `DATABASE_URL` set. The published CLI installs only what hosted use
|
|
422
|
+
needs; the first self-hosting command prints the exact `npm install` line for the server packages.
|
|
423
|
+
Guide: [self-hosting](https://www.lurq.run/docs/self-hosting).
|
|
424
|
+
|
|
425
|
+
</details>
|
|
254
426
|
|
|
255
427
|
---
|
|
256
428
|
|
|
257
429
|
## Contact
|
|
258
430
|
|
|
259
|
-
Inquiries, partnerships
|
|
431
|
+
Inquiries, partnerships or proposals: **jadenryu@lurq.run**
|
|
260
432
|
|
|
261
433
|
## License
|
|
262
434
|
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { createRequire as __lurqCreateRequire } from 'node:module'; const require = __lurqCreateRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
handleAudit
|
|
4
|
+
} from "./chunk-B2UUYRBX.js";
|
|
5
|
+
import "./chunk-FDFPMBCA.js";
|
|
6
|
+
import "./chunk-BJT2LHAR.js";
|
|
7
|
+
import "./chunk-P6MIKSPY.js";
|
|
8
|
+
import "./chunk-6EQ3ARXA.js";
|
|
9
|
+
import "./chunk-SHCEBP3J.js";
|
|
10
|
+
import "./chunk-LEGPB7DO.js";
|
|
11
|
+
import "./chunk-Q5VPF4WI.js";
|
|
12
|
+
import "./chunk-QSL6QN5X.js";
|
|
13
|
+
import "./chunk-QUIMQ7YL.js";
|
|
14
|
+
import "./chunk-ONDVTXUO.js";
|
|
15
|
+
import "./chunk-4JHDSVIN.js";
|
|
16
|
+
import "./chunk-KYKSZ3XZ.js";
|
|
17
|
+
import "./chunk-6L67QMCP.js";
|
|
18
|
+
import "./chunk-3GHJR7XR.js";
|
|
19
|
+
import "./chunk-MYGSLK44.js";
|
|
20
|
+
import "./chunk-72Y2FDVS.js";
|
|
21
|
+
import "./chunk-I3M2KJXB.js";
|
|
22
|
+
export {
|
|
23
|
+
handleAudit
|
|
24
|
+
};
|