lurqrun 0.1.0 → 0.1.1

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/LICENSE CHANGED
@@ -1,201 +1,21 @@
1
- Apache License
2
- Version 2.0, January 2004
3
- http://www.apache.org/licenses/
4
-
5
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
-
7
- 1. Definitions.
8
-
9
- "License" shall mean the terms and conditions for use, reproduction,
10
- and distribution as defined by Sections 1 through 9 of this document.
11
-
12
- "Licensor" shall mean the copyright owner or entity authorized by
13
- the copyright owner that is granting the License.
14
-
15
- "Legal Entity" shall mean the union of the acting entity and all
16
- other entities that control, are controlled by, or are under common
17
- control with that entity. For the purposes of this definition,
18
- "control" means (i) the power, direct or indirect, to cause the
19
- direction or management of such entity, whether by contract or
20
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
- outstanding shares, or (iii) beneficial ownership of such entity.
22
-
23
- "You" (or "Your") shall mean an individual or Legal Entity
24
- exercising permissions granted by this License.
25
-
26
- "Source" form shall mean the preferred form for making modifications,
27
- including but not limited to software source code, documentation
28
- source, and configuration files.
29
-
30
- "Object" form shall mean any form resulting from mechanical
31
- transformation or translation of a Source form, including but
32
- not limited to compiled object code, generated documentation,
33
- and conversions to other media types.
34
-
35
- "Work" shall mean the work of authorship, whether in Source or
36
- Object form, made available under the License, as indicated by a
37
- copyright notice that is included in or attached to the work
38
- (an example is provided in the Appendix below).
39
-
40
- "Derivative Works" shall mean any work, whether in Source or Object
41
- form, that is based on (or derived from) the Work and for which the
42
- editorial revisions, annotations, elaborations, or other modifications
43
- represent, as a whole, an original work of authorship. For the purposes
44
- of this License, Derivative Works shall not include works that remain
45
- separable from, or merely link (or bind by name) to the interfaces of,
46
- the Work and Derivative Works thereof.
47
-
48
- "Contribution" shall mean any work of authorship, including
49
- the original version of the Work and any modifications or additions
50
- to that Work or Derivative Works thereof, that is intentionally
51
- submitted to Licensor for inclusion in the Work by the copyright owner
52
- or by an individual or Legal Entity authorized to submit on behalf of
53
- the copyright owner. For the purposes of this definition, "submitted"
54
- means any form of electronic, verbal, or written communication sent
55
- to the Licensor or its representatives, including but not limited to
56
- communication on electronic mailing lists, source code control systems,
57
- and issue tracking systems that are managed by, or on behalf of, the
58
- Licensor for the purpose of discussing and improving the Work, but
59
- excluding communication that is conspicuously marked or otherwise
60
- designated in writing by the copyright owner as "Not a Contribution."
61
-
62
- "Contributor" shall mean Licensor and any individual or Legal Entity
63
- on behalf of whom a Contribution has been received by Licensor and
64
- subsequently incorporated within the Work.
65
-
66
- 2. Grant of Copyright License. Subject to the terms and conditions of
67
- this License, each Contributor hereby grants to You a perpetual,
68
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
- copyright license to reproduce, prepare Derivative Works of,
70
- publicly display, publicly perform, sublicense, and distribute the
71
- Work and such Derivative Works in Source or Object form.
72
-
73
- 3. Grant of Patent License. Subject to the terms and conditions of
74
- this License, each Contributor hereby grants to You a perpetual,
75
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
- (except as stated in this section) patent license to make, have made,
77
- use, offer to sell, sell, import, and otherwise transfer the Work,
78
- where such license applies only to those patent claims licensable
79
- by such Contributor that are necessarily infringed by their
80
- Contribution(s) alone or by combination of their Contribution(s)
81
- with the Work to which such Contribution(s) was submitted. If You
82
- institute patent litigation against any entity (including a
83
- cross-claim or counterclaim in a lawsuit) alleging that the Work
84
- or a Contribution incorporated within the Work constitutes direct
85
- or contributory patent infringement, then any patent licenses
86
- granted to You under this License for that Work shall terminate
87
- as of the date such litigation is filed.
88
-
89
- 4. Redistribution. You may reproduce and distribute copies of the
90
- Work or Derivative Works thereof in any medium, with or without
91
- modifications, and in Source or Object form, provided that You
92
- meet the following conditions:
93
-
94
- (a) You must give any other recipients of the Work or
95
- Derivative Works a copy of this License; and
96
-
97
- (b) You must cause any modified files to carry prominent notices
98
- stating that You changed the files; and
99
-
100
- (c) You must retain, in the Source form of any Derivative Works
101
- that You distribute, all copyright, patent, trademark, and
102
- attribution notices from the Source form of the Work,
103
- excluding those notices that do not pertain to any part of
104
- the Derivative Works; and
105
-
106
- (d) If the Work includes a "NOTICE" text file as part of its
107
- distribution, then any Derivative Works that You distribute must
108
- include a readable copy of the attribution notices contained
109
- within such NOTICE file, excluding those notices that do not
110
- pertain to any part of the Derivative Works, in at least one
111
- of the following places: within a NOTICE text file distributed
112
- as part of the Derivative Works; within the Source form or
113
- documentation, if provided along with the Derivative Works; or,
114
- within a display generated by the Derivative Works, if and
115
- wherever such third-party notices normally appear. The contents
116
- of the NOTICE file are for informational purposes only and
117
- do not modify the License. You may add Your own attribution
118
- notices within Derivative Works that You distribute, alongside
119
- or as an addendum to the NOTICE text from the Work, provided
120
- that such additional attribution notices cannot be construed
121
- as modifying the License.
122
-
123
- You may add Your own copyright statement to Your modifications and
124
- may provide additional or different license terms and conditions
125
- for use, reproduction, or distribution of Your modifications, or
126
- for any such Derivative Works as a whole, provided Your use,
127
- reproduction, and distribution of the Work otherwise complies with
128
- the conditions stated in this License.
129
-
130
- 5. Submission of Contributions. Unless You explicitly state otherwise,
131
- any Contribution intentionally submitted for inclusion in the Work
132
- by You to the Licensor shall be under the terms and conditions of
133
- this License, without any additional terms or conditions.
134
- Notwithstanding the above, nothing herein shall supersede or modify
135
- the terms of any separate license agreement you may have executed
136
- with Licensor regarding such Contributions.
137
-
138
- 6. Trademarks. This License does not grant permission to use the trade
139
- names, trademarks, service marks, or product names of the Licensor,
140
- except as required for reasonable and customary use in describing the
141
- origin of the Work and reproducing the content of the NOTICE file.
142
-
143
- 7. Disclaimer of Warranty. Unless required by applicable law or
144
- agreed to in writing, Licensor provides the Work (and each
145
- Contributor provides its Contributions) on an "AS IS" BASIS,
146
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
- implied, including, without limitation, any warranties or conditions
148
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
- PARTICULAR PURPOSE. You are solely responsible for determining the
150
- appropriateness of using or redistributing the Work and assume any
151
- risks associated with Your exercise of permissions under this License.
152
-
153
- 8. Limitation of Liability. In no event and under no legal theory,
154
- whether in tort (including negligence), contract, or otherwise,
155
- unless required by applicable law (such as deliberate and grossly
156
- negligent acts) or agreed to in writing, shall any Contributor be
157
- liable to You for damages, including any direct, indirect, special,
158
- incidental, or consequential damages of any character arising as a
159
- result of this License or out of the use or inability to use the
160
- Work (including but not limited to damages for loss of goodwill,
161
- work stoppage, computer failure or malfunction, or any and all
162
- other commercial damages or losses), even if such Contributor
163
- has been advised of the possibility of such damages.
164
-
165
- 9. Accepting Warranty or Additional Liability. While redistributing
166
- the Work or Derivative Works thereof, You may choose to offer,
167
- and charge a fee for, acceptance of support, warranty, indemnity,
168
- or other liability obligations and/or rights consistent with this
169
- License. However, in accepting such obligations, You may act only
170
- on Your own behalf and on Your sole responsibility, not on behalf
171
- of any other Contributor, and only if You agree to indemnify,
172
- defend, and hold each Contributor harmless for any liability
173
- incurred by, or claims asserted against, such Contributor by reason
174
- of your accepting any such warranty or additional liability.
175
-
176
- END OF TERMS AND CONDITIONS
177
-
178
- APPENDIX: How to apply the Apache License to your work.
179
-
180
- To apply the Apache License to your work, attach the following
181
- boilerplate notice, with the fields enclosed by brackets "{}"
182
- replaced with your own identifying information. (Don't include
183
- the brackets!) The text should be enclosed in the appropriate
184
- comment syntax for the file format. We also recommend that a
185
- file or class name and description of purpose be included on the
186
- same "printed page" as the copyright notice for easier
187
- identification within third-party archives.
188
-
189
- Copyright 2026 Jaden Ryu
190
-
191
- Licensed under the Apache License, Version 2.0 (the "License");
192
- you may not use this file except in compliance with the License.
193
- You may obtain a copy of the License at
194
-
195
- http://www.apache.org/licenses/LICENSE-2.0
196
-
197
- Unless required by applicable law or agreed to in writing, software
198
- distributed under the License is distributed on an "AS IS" BASIS,
199
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
200
- See the License for the specific language governing permissions and
201
- limitations under the License.
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Jaden Ryu
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -2,15 +2,14 @@
2
2
 
3
3
  # lurq
4
4
 
5
- **Execution-verified dependency intelligence for AI coding agents.**
5
+ **The verification layer for AI coding agents to ship unbreakable code.**
6
6
 
7
- A live index of npm scored from public signals, plus a sandbox that settles the
8
- questions metadata can't — exposed as an MCP server, a CLI, an HTTP API, and an
9
- installable agent skill.
7
+ A live index of npm scored from public signals and co-installation through a sandbox. Use lurq
8
+ through an MCP server, CLI, HTTP API, or an installable agent skill.
10
9
 
11
10
  [![npm version](https://img.shields.io/npm/v/lurqrun?color=%230b7285&label=npm)](https://www.npmjs.com/package/lurqrun)
12
11
  [![npm downloads](https://img.shields.io/npm/dm/lurqrun?color=%230b7285)](https://www.npmjs.com/package/lurqrun)
13
- [![license](https://img.shields.io/badge/license-Apache--2.0-blue)](LICENSE)
12
+ [![license](https://img.shields.io/badge/license-MIT-blue)](LICENSE)
14
13
  [![node](https://img.shields.io/badge/node-%3E%3D20-339933?logo=node.js&logoColor=white)](https://nodejs.org)
15
14
  [![MCP](https://img.shields.io/badge/MCP-compatible-6E56CF)](https://modelcontextprotocol.io)
16
15
 
@@ -22,21 +21,13 @@ installable agent skill.
22
21
 
23
22
  ## Why
24
23
 
25
- Your agent picks the dependencies now, and it picks them from training data frozen
26
- at its cutoff, ranked by how often a name appeared in text — not by whether the
27
- package is healthy today. So agents install libraries that are abandoned, carry
28
- open advisories, or don't exist at all.
24
+ Your agent is terrible at resolving dependency matrices and maintaining old projects, leading to stack version drift.
29
25
 
30
- lurq is what the agent checks first.
26
+ lurq reads the shipped code instead and caches it so we can diff surfaces across versions. lurq upgrades stacks and reports failures before they can even happen. lurq is what the agent checks first when planning, updating, or deploying any project.
31
27
 
32
- Most of what matters is readable release cadence, advisories, deprecations,
33
- types/tests/docs, bundle cost — and lurq ingests all of it daily. The rest isn't
34
- readable at all. Whether a package installs cleanly, whether it imports without
35
- throwing, whether two versions can coexist in one tree: those are only knowable by
36
- running them, so lurq runs them in an isolated sandbox and keeps the result.
37
-
38
- lurq recommends and explains packages; your agent writes the code. Responses are
39
- compact and token-budgeted, built for a context window rather than a screen.
28
+ lurq's information comes from readable and executable sources. These include analyzing advisories, release cadence, deprecations, and sandboxing. Compatibility edges are
29
+ minted continuously and stored in a Postgres database. Responses are
30
+ compact and token-budgeted so lurq works alongside your agent.
40
31
 
41
32
  > **Scope:** the JavaScript/TypeScript web stack (npm) only.
42
33
 
@@ -44,16 +35,15 @@ compact and token-budgeted, built for a context window rather than a screen.
44
35
 
45
36
  ## Quick start
46
37
 
47
- lurq is a **hosted service** — you don't run a database or a sync.
48
- [Create a free account](https://lurq.run/sign-up) to generate an API key, then run
49
- the guided installer:
38
+ lurq is a **hosted service** — you don't run a database or a sync. One command,
39
+ with nothing installed first:
50
40
 
51
41
  ```bash
52
- npx lurqrun install
42
+ npx lurqrun
53
43
  ```
54
44
 
55
- It prompts for your key, validates it, detects your installed assistants, and
56
- writes a keyed remote MCP entry:
45
+ This command runs the guided setup, allowing you to sign in and validate your system with an API key. lurq automatically
46
+ detects your installed assistants and writes a remote MCP entry.
57
47
 
58
48
  ```json
59
49
  {
@@ -65,6 +55,16 @@ writes a keyed remote MCP entry:
65
55
 
66
56
  **No database credentials ever touch your machine.** Restart your agent afterward.
67
57
 
58
+ ### The `lurq` command
59
+
60
+ The package is published as **`lurqrun`**. The command you type is `lurq`, and it exists only once the package is
61
+ installed.
62
+
63
+ ```bash
64
+ npm install -g lurqrun # then `lurq` works in any terminal
65
+ lurq --version
66
+ ```
67
+
68
68
  <details>
69
69
  <summary><b>Supported assistants</b></summary>
70
70
 
@@ -76,12 +76,48 @@ self-host against your own database with `--local`.
76
76
 
77
77
  </details>
78
78
 
79
+ <details>
80
+ <summary><b>Uninstall, or start over</b></summary>
81
+
82
+ **Reinstall** is just setup again. It is safe to re-run and overwrites previous runs.
83
+
84
+ ```bash
85
+ npx lurqrun
86
+ ```
87
+
88
+ **Uninstall** is three separate things, because setup writes to three places:
89
+
90
+ ```bash
91
+ lurq logout # forget the API key (~/.lurq/config.json)
92
+ npm uninstall -g lurqrun # remove the `lurq` command
93
+ ```
94
+
95
+ The third is the MCP entries in your agents' config files. Delete the `lurq` entry from whichever of these you
96
+ use:
97
+
98
+ | Assistant | MCP config | Instructions file |
99
+ |---|---|---|
100
+ | Claude Code | `~/.claude.json` | `~/.claude/skills/lurq/SKILL.md` |
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` |
108
+
109
+ `lurq logout` **only** clears the key stored for the CLI. A copy of it
110
+ lives in each MCP entry above, so revoke the key from
111
+ [the dashboard](https://lurq.run/dashboard/keys).
112
+
113
+ </details>
114
+
79
115
  ---
80
116
 
81
117
  ## MCP tools
82
118
 
83
- Once installed, your agent can call these over MCP. Every response is compact and
84
- carries a `dataAsOf` timestamp.
119
+ lurq can call these tools over MCP. Every response
120
+ carries a `dataAsOf` timestamp so your agents know how fresh the information is.
85
121
 
86
122
  | Tool | What it answers |
87
123
  |---|---|
@@ -97,8 +133,7 @@ carries a `dataAsOf` timestamp.
97
133
  | `diff_surface` | What a version bump adds, removes, renames, or changes arity on |
98
134
  | `report_outcome` | What happened after a pick shipped — installed clean, broke the build, resolved the task |
99
135
 
100
- `usage` is the one worth calling out: pass the version your model *thinks* it knows
101
- and get the precise delta to the version you're actually installing. That fact
136
+ `usage` outputs the delta between your agent's analysis of a package versus lurq's ground truth. That fact
102
137
  exists in no changelog and no model's training data.
103
138
 
104
139
  ---
@@ -126,13 +161,20 @@ lurq plan ./project.md # a description in, a scored stack ou
126
161
  lurq upgrade-plan . # what's behind, and what each upgrade removes
127
162
  lurq check-upgrade . --plan lurq-plan.json --exit-code
128
163
 
164
+ # Shipping your own (the same diff, pointed the other way)
165
+ lurq check-release # is the version you're about to publish honest?
166
+ lurq check-api --against origin/main # does this break the callers of your API?
167
+
168
+ # Finding your way around
169
+ lurq can "will this upgrade break my code" # which lurq capability answers this?
170
+
129
171
  # Configuration & serving
130
172
  lurq weights # the exact ranking weights, printed
131
173
  lurq edit-weights --set composite.lambda=0.5
132
174
  lurq serve-http # run it as a rate-limited service of your own
133
175
  ```
134
176
 
135
- Every read command takes `--json`.
177
+ Use the '-- json ' flag for every read command.
136
178
 
137
179
  ---
138
180
 
@@ -141,13 +183,8 @@ Every read command takes `--json`.
141
183
  lurq also keeps a repository's dependencies current **and rewrites the code an
142
184
  upgrade breaks.**
143
185
 
144
- Renovate and Dependabot open a PR that says *"bumped react-router 6→8"* and gate it
145
- on your test suite. If coverage misses the affected path, the PR merges green and
146
- breaks in production.
147
-
148
- lurq opens a PR that says *"bumped react-router 6→8, and rewrote the 14 call sites
149
- that used `useHistory`, which no longer exists"* — because it holds the
150
- symbol-level surface diff and intersects it with what your code references.
186
+ lurq can open PRs addressing the symbol-level API surface diff
187
+ and resolve with what calls your code references.
151
188
 
152
189
  **The gate needs no tests at all.**
153
190
 
@@ -168,20 +205,19 @@ unverified could not be established → never counted as safe
168
205
  | 4. `create-pull-request` — one branch, one PR | your runner | `GITHUB_TOKEN` |
169
206
  | 5. Outcomes post back — names and counts, never source | lurq | — |
170
207
 
171
- Steps 1–2 are the default. The generated workflow starts in `comment` mode: it
172
- plans, checks, and writes the brief to the run summary, changing nothing. Editing
173
- is opt-in per repository.
208
+ Steps 1–2 are the default and are also available on the web app through project autopilot. The generated workflow starts in `comment` mode: it
209
+ plans, checks, and writes the brief to the run summary. Editing
210
+ is opt-in per repository. Click the policy tab to set global security parameters.
174
211
 
175
212
  ### Trust model
176
213
 
177
214
  - **lurq's GitHub App is `Contents: read-only` and stays that way.** It cannot
178
215
  write to any repository, ever.
179
216
  - **Every write uses your own `GITHUB_TOKEN`** — ephemeral, scoped to one repo,
180
- limited to what the `permissions:` block in a file *you* committed declares.
217
+ limited to the `permissions:` block in your committed file.
181
218
  - **The agent cannot touch version control.** Its allowlist is
182
- `Read,Edit,Write,Bash(<pkg-manager>:*)` no `git`, no network. The model edits
183
- files; the *workflow* commits. A prompt injection in a dependency's changelog
184
- cannot push a branch.
219
+ `Read,Edit,Write,Bash(<pkg-manager>:*)`. Your agent can only edit
220
+ files.
185
221
  - **Revoking it is `git rm .github/workflows/lurq-upgrade.yml`.**
186
222
 
187
223
  Architecture and limits: [`docs/lurq-autopilot.md`](docs/lurq-autopilot.md).
@@ -190,28 +226,22 @@ Architecture and limits: [`docs/lurq-autopilot.md`](docs/lurq-autopilot.md).
190
226
 
191
227
  ## Where the evidence comes from
192
228
 
193
- Two sources, and the distinction is the whole point.
194
-
195
229
  **Readable** — npm, GitHub, deps.dev, and OSV, re-synced daily. Downloads, release
196
- cadence, maintenance, advisories, deprecations, license, bundle cost. This is what
197
- scoring runs on.
230
+ cadence, maintenance, advisories, deprecations, license, bundle cost.
198
231
 
199
232
  **Executed** — an isolated sandbox (E2B, with a local driver for trusted work) that
200
- installs a package version, imports it, and records what happened. Co-installing a
201
- set is how compatibility is established: a successful co-install is positive proof
202
- two versions coexist, a failure is proof they conflict, and the error is kept as
203
- evidence. `compat` and `plan` read those edges, which is why lurq can tell you a
204
- *stack* holds together rather than only that each package looks fine alone.
233
+ installs and imports a package version. Results are recorded in the compatibility matrix.
234
+ Compatibility is established through co-installation. `compat` and `plan` read those edges, which is why lurq can tell you
235
+ that an entire stack holds together.
205
236
 
206
- Facts of the second kind appear in no changelog and no model's training data, and
207
- they go stale unless someone keeps re-running the experiment.
237
+ Executable proof allows lurq to look beyond changelogs and training data.
208
238
 
209
239
  ---
210
240
 
211
241
  ## How ranking works
212
242
 
213
243
  Deterministic, and public. **No model sits in the ranking path** — `recommend` is
214
- hybrid vector + full-text search over precomputed scores, which is why it's fast,
244
+ hybrid vector + full-text search over precomputed scores, which is why lurq is fast,
215
245
  cheap, and reproducible.
216
246
 
217
247
  ```
@@ -220,19 +250,17 @@ quality = types · tests · docs · changelog · dep count · license · provena
220
250
  composite = blend at a single tunable λ (default 0.35)
221
251
  ```
222
252
 
223
- `quality` is a separate, **adoption-independent** axis, so a well-built new package
224
- isn't buried by an old popular one.
253
+ `quality` is a separate, **adoption-independent** axis.
225
254
 
226
255
  Every weight lives in [`src/scoring/weights.ts`](src/scoring/weights.ts) and is
227
- printable with `lurq weights`. An answer an agent acts on is worth nothing if it
228
- can't be audited.
256
+ printable with `lurq weights`.
229
257
 
230
258
  ---
231
259
 
232
260
  ## Contact
233
261
 
234
- Inquiries, partnerships, or proposals: **jadenryu@gmail.com**
262
+ Inquiries, partnerships, or proposals: **jadenryu@lurq.run**
235
263
 
236
264
  ## License
237
265
 
238
- [Apache-2.0](LICENSE)
266
+ [MIT](LICENSE)