@methiu/raigal 0.16.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1 @@
1
+ PROPRIETARY. All rights reserved. Use is permitted only under a written agreement with Raigal. [LICENCE TEXT TO BE SUPPLIED BY COUNSEL]
package/README.md ADDED
@@ -0,0 +1,511 @@
1
+ # Raigal
2
+
3
+ **Catch the slop AI coding agents leave in your code.**
4
+
5
+ [![npm version](https://img.shields.io/npm/v/raigal.svg)](https://www.npmjs.com/package/raigal) [![npm downloads](https://img.shields.io/npm/dm/raigal.svg)](https://www.npmjs.com/package/raigal) [![CI](https://github.com/meethiu/raigal/actions/workflows/ci.yml/badge.svg)](https://github.com/meethiu/raigal/actions/workflows/ci.yml) [![Node >= 20](https://img.shields.io/badge/node-%3E%3D20-brightgreen.svg)](https://nodejs.org) [![Discord](https://img.shields.io/badge/Discord-Join-5865F2?logo=discord&logoColor=white)](https://discord.gg/Mzz4A6mfj6)
6
+
7
+ The patterns Claude Code, Cursor, Codex, and OpenCode leave behind: narrative comments above self-explanatory code, swallowed exceptions, hidden fallbacks, `as any` casts, hallucinated imports, duplicated helpers, dead code, todo stubs, oversized functions. Tests pass. Lint passes. The code rots anyway.
8
+
9
+ Raigal catches them. 50+ rules across 10 language targets (TypeScript, JavaScript, Expo / React Native, Python, Go, Rust, Ruby, PHP, C#, C/C++). Scores every change 0-100. Sub-second. Deterministic: no LLM in the runtime path, same code in, same score out.
10
+
11
+ ## Quick start
12
+
13
+ Raigal is proprietary software licensed to organizations on an admin-managed allowlist. Runs require authentication via organization credentials (`raigal login` or `RAIGAL_TOKEN`).
14
+
15
+ ```bash
16
+ # 1. Sign in with your organization account
17
+ raigal login
18
+
19
+ # 2. Score your repository
20
+ raigal scan
21
+ ```
22
+
23
+ In CI and automated workflows, provide your organization API key via the `RAIGAL_TOKEN` environment variable.
24
+
25
+ Also available on npm, Yarn, Bun, and Homebrew:
26
+
27
+ ```bash
28
+ npm install -g raigal # npm
29
+ yarn dlx raigal scan # Yarn
30
+ bun add -g raigal # Bun
31
+ brew install meethiu/tap/raigal # Homebrew
32
+ ```
33
+
34
+ See [Installation](#installation) for every option.
35
+
36
+ ## Language support
37
+
38
+ Raigal supports TypeScript, JavaScript, Expo / React Native, Python, Go, Rust, Ruby, PHP, C#, and C/C++.
39
+
40
+ Coverage includes formatting, linting, complexity, AI-slop detection, and security checks. Some checks use optional system tools; see [Installation](docs/installation.md) and the [rules reference](docs/rules.md) for details.
41
+
42
+ ```bash
43
+ raigal agent # repair with your coding agent (Codex/Claude/OpenCode)
44
+ raigal fix # auto-fix the mechanical issues
45
+ raigal fix -f # aggressive fixes (deps, unused files)
46
+ raigal ci # CI mode (JSON + gate)
47
+ raigal hook install --claude # per-edit hook
48
+ ```
49
+
50
+ **Public badge**: Show your score on your README
51
+
52
+ ```markdown
53
+ [![raigal](https://badges.raigal.dev/score/<owner>/<repo>.svg)](https://raigal.dev)
54
+ ```
55
+
56
+ Run `npx raigal@latest badge` to auto-generate. Free at [raigal.dev](https://raigal.dev).
57
+
58
+ ## See it in action
59
+
60
+ ### Scan
61
+
62
+ ![raigal scan demo](assets/scan.gif)
63
+
64
+ ---
65
+
66
+ ## Installation
67
+
68
+ The same CLI is published to npm and Homebrew. Pick whichever fits your stack.
69
+
70
+ **Node / npm**
71
+
72
+ ```bash
73
+ # Run without installing
74
+ npx raigal@latest scan
75
+
76
+ # npm
77
+ npm install --save-dev raigal
78
+
79
+ # yarn
80
+ yarn add --dev raigal
81
+
82
+ # pnpm
83
+ pnpm add -D raigal
84
+
85
+ # bun
86
+ bun add -d raigal
87
+
88
+ # Global
89
+ npm install -g raigal
90
+ ```
91
+
92
+ Package installation does not run dependency lifecycle scripts. After installing, run `raigal-tools` once if you want bundled Ruff and golangci-lint coverage; the core scanner works without it.
93
+
94
+ **Homebrew** (macOS / Linux)
95
+
96
+ ```bash
97
+ brew install meethiu/tap/raigal
98
+ ```
99
+
100
+ Homebrew installs Node.js as a dependency if it isn't already present. Details: [homebrew-tap](https://github.com/meethiu/homebrew-tap).
101
+
102
+ **Python / pipx**
103
+
104
+ ```bash
105
+ pipx install raigal
106
+ ```
107
+
108
+ `pipx` keeps `raigal` in its own isolated environment. Needs Node.js on `PATH`.
109
+
110
+ Full reference for every channel, optional bundled tooling, and external tools: [docs/installation.md](docs/installation.md).
111
+
112
+ ---
113
+
114
+ ## Usage
115
+
116
+ Examples below use the installed `raigal` binary. For a one-off latest run, prefix the command with `npx raigal@latest`, for example `npx raigal@latest scan`.
117
+
118
+ ### Command reference
119
+
120
+ ```bash
121
+ raigal --help # clean overview
122
+ raigal commands # every public command and major flag
123
+ raigal <command> --help # detailed help for one command
124
+ raigal version # installed version
125
+ raigal -V # installed version
126
+ raigal update # current and latest npm versions
127
+ ```
128
+
129
+ ### Scan
130
+
131
+ ```bash
132
+ raigal scan # current directory
133
+ raigal scan ./src # specific directory
134
+ raigal scan --changes # changed files from HEAD
135
+ raigal scan --changes --base origin/main # changed vs a base branch (PRs)
136
+ raigal scan --staged # staged files only
137
+ raigal scan -d # verbose file/rule detail
138
+ raigal scan --json # JSON output
139
+ raigal scan --sarif # SARIF 2.1.0 output (GitHub code scanning)
140
+ raigal scan --format json # alternate JSON form
141
+ raigal scan --include "src/**" # only matching paths
142
+ raigal scan --exclude "dist,gen" # skip extra paths
143
+ ```
144
+
145
+ **Exclude files**: `node_modules`, `.git`, `dist`, `build`, `coverage` excluded by default. Add more in `.raigal/config.yml`:
146
+
147
+ ```yaml
148
+ exclude:
149
+ - "**/*.test.ts"
150
+ - src/generated
151
+ ```
152
+
153
+ Or via CLI: `raigal scan --exclude "**/*.test.ts,dist"`
154
+
155
+ **Unsupported languages**: Raigal only analyses the 10 language targets above. If a repo is mostly something else (Swift, Kotlin, Java, ...), scoring a handful of incidental files would misrepresent it, so Raigal **withholds the score** and says so rather than printing a number off code it never read. `--json` returns `score: null`, `scoreable: false`, and a `coverage` breakdown.
156
+
157
+ **Per-rule severity**: Override the severity of any rule by id, or turn it off:
158
+
159
+ ```yaml
160
+ # .raigal/config.yml
161
+ rules:
162
+ ai-slop/narrative-comment: warning # error | warning | off
163
+ ai-slop/trivial-comment: "off" # drop this rule entirely
164
+ security/hardcoded-secret: error
165
+ ```
166
+
167
+ `off` drops matching diagnostics; `error`/`warning` rewrites severity before scoring and reporting. Absent map keeps default behavior.
168
+
169
+ **Suppress findings inline**: Silence a specific line when you know better, with an optional reason after `--`:
170
+
171
+ ```ts
172
+ // raigal-ignore-next-line ai-slop/hidden-fallback -- options is validated upstream
173
+ const opts = { ...defaults, ...(input || {}) };
174
+
175
+ const legacy = doThing(); // raigal-ignore-line
176
+ ```
177
+
178
+ `raigal-ignore-next-line` covers the line below, `raigal-ignore-line` the line it sits on, and `raigal-ignore-file` (place anywhere in the file) the whole file. Name one or more rules to scope the suppression, or omit them to silence every rule on that line. The directive works in any comment syntax (`//`, `#`, `<!-- -->`). Suppressed findings are removed before scoring, and the run reports how many were silenced.
179
+
180
+ **Ignore whole paths**: Add an `.raigalignore` at the project root (same glob semantics as `exclude`, `#` comments allowed):
181
+
182
+ ```
183
+ src/generated
184
+ **/*.snap
185
+ legacy
186
+ ```
187
+
188
+ **Extend config**: Project config can extend a parent:
189
+
190
+ ```yaml
191
+ # .raigal/config.yml
192
+ extends: ../../.raigal/base.yml
193
+ ci:
194
+ failBelow: 80 # override specific keys
195
+ ```
196
+
197
+ **Editor validation**: Point your editor at the JSON Schema in [`schema/raigal.config.schema.json`](schema/raigal.config.schema.json) for autocomplete and validation of `.raigal/config.yml`. Regenerate it from the source config schema with `pnpm gen:schema`.
198
+
199
+ ### Fix
200
+
201
+ The deterministic layer beneath [`raigal agent`](#run-a-local-repair-agent): auto-fix what's purely mechanical (formatters, unused imports, dead code). For anything that needs judgement, reach for `raigal agent` or hand off to your coding agent with full diagnostic info.
202
+
203
+ ```bash
204
+ raigal fix # auto-fixes
205
+ raigal fix --dry-run # preview planned steps without writing files
206
+ raigal fix --changes # only rewrite files changed vs HEAD
207
+ raigal fix --staged # only rewrite staged files
208
+ raigal fix -d # detailed fix progress
209
+ raigal fix --safe # only reversible fixes (imports, comment removal, safe formatters)
210
+ raigal fix -f # aggressive: deps, unused files
211
+ raigal fix -p # print an agent handoff prompt
212
+ ```
213
+
214
+ `--safe` restricts the run to fixes that cannot change behaviour - unused-import removal, import merging, narrative-comment removal, and formatter runs that do not execute project-controlled configuration. Anything that deletes code, rewrites behaviour/attributes, or can load executable formatter configuration (console/dead-code removal, lint autofixes, Ruby/PHP formatter config, unused-declaration and dependency pruning) is skipped, so a `--safe` run is genuinely "apply and commit".
215
+
216
+ ### Run a local repair agent
217
+
218
+ `raigal agent` keeps the deterministic scanner in charge while using the coding agent you already have installed. It creates a local git worktree, runs safe fixes, streams a headless Codex / Claude Code / OpenCode repair session, verifies the result with `raigal scan --json`, writes a local session transcript, and leaves the diff for review.
219
+
220
+ ```bash
221
+ raigal agent providers # see installed providers and setup hints
222
+ raigal agent connect codex # run the provider's own local login flow
223
+ raigal agent use codex # save a repo-local default provider
224
+ raigal agent use auto # clear the default and auto-detect
225
+ raigal agent plan # preview provider, worktree, findings, PR/apply behavior
226
+ raigal agent monitor # stream scans when local git changes settle
227
+ raigal agent monitor --background
228
+ raigal agent monitor list # list background monitors
229
+ raigal agent monitor stop # stop the latest background monitor
230
+ raigal agent monitor --repair --in-place
231
+ raigal agent # auto-pick an installed provider
232
+ raigal agent --provider codex # switch provider
233
+ raigal agent --background # run locally in the background
234
+ raigal agent --apply # apply verified diff back to this repo
235
+ raigal agent --pr # commit, push, and open a draft PR
236
+ raigal agent sessions # list recent local repair sessions
237
+ raigal agent show # show the latest session timeline and summary
238
+ raigal agent apply # apply a reviewed worktree session later
239
+ raigal agent watch # stream the latest session transcript
240
+ raigal agent stop # stop the latest running background session
241
+ ```
242
+
243
+ No OpenAI or Anthropic API key is requested by `raigal`; provider CLIs use their own existing local auth. A saved provider default lives in `.raigal/agent/provider.json` and is kept out of commits through the repo's local Git exclude. Session transcripts live under `.raigal/agent/sessions/`, and agent sessions/worktrees are also excluded locally. Provider JSONL is normalized in the terminal stream while raw lines stay in the transcript.
244
+
245
+ ### Hand off to agent
246
+
247
+ When auto-fix can't solve it, pass the remaining issues to your coding agent with full context:
248
+
249
+ ```bash
250
+ raigal fix --claude # Claude Code
251
+ raigal fix --codex # Codex CLI
252
+ raigal fix --cursor # Cursor (copies to clipboard)
253
+ raigal fix --gemini # Gemini CLI
254
+ raigal fix --prompt # print prompt (agent-agnostic)
255
+ ```
256
+
257
+ Other fix handoff flags: `--windsurf`, `--vscode`, `--amp`, `--antigravity`, `--deep-agents`, `--kimi`, `--opencode`, `--warp`, `--aider`, `--goose`, `--pi`, `--crush`.
258
+
259
+ ### Install hook
260
+
261
+ Runs after every agent edit. Feedback flows back immediately.
262
+
263
+ ```bash
264
+ raigal hook install --claude # Claude Code
265
+ raigal hook install --cursor # Cursor
266
+ raigal hook install --gemini # Gemini CLI
267
+ raigal hook install --pi # pi
268
+ raigal hook install # pick agents interactively
269
+ raigal hook install claude cursor # specific agents
270
+ raigal hook install --agent claude,pi # comma-separated agents
271
+ raigal install claude cursor # alias for hook install
272
+ raigal install hooks --claude # natural alias for hook install
273
+ ```
274
+
275
+ **Runtime adapters** (scan + feedback): `claude`, `cursor`, `gemini`, `pi`.
276
+ **Rules-only** (agent reads rules): `codex`, `windsurf`, `cline`, `kilocode`, `antigravity`, `copilot`.
277
+
278
+ Hook install flags: `--agent <names>`, `-g, --global`, `--project`, `--dry-run`, `--yes`, `--quality-gate`, plus per-agent shortcuts `--claude`, `--cursor`, `--gemini`, `--pi`, `--codex`, `--windsurf`, `--cline`, `--kilocode`, `--antigravity`, `--copilot`.
279
+
280
+ **Quality-gate mode**: Blocks if score regresses below baseline.
281
+
282
+ ```bash
283
+ raigal hook install --claude --quality-gate
284
+ raigal hook baseline # re-capture baseline
285
+ raigal hook status # list installed
286
+ raigal hook uninstall --claude # remove
287
+ raigal uninstall claude # alias for hook uninstall
288
+ raigal uninstall hooks --claude # natural alias for hook uninstall
289
+ ```
290
+
291
+ ### MCP server
292
+
293
+ Expose Raigal as MCP tools for Claude Desktop, Cursor, Codex:
294
+
295
+ ```jsonc
296
+ // ~/.cursor/mcp.json or Claude Desktop config
297
+ {
298
+ "mcpServers": {
299
+ "raigal": {
300
+ "command": "npx",
301
+ "args": ["-y", "raigal-mcp"]
302
+ }
303
+ }
304
+ }
305
+ ```
306
+
307
+ **Tools**: `raigal_scan`, `raigal_fix`, `raigal_why`, `raigal_baseline`.
308
+
309
+ ### CI
310
+
311
+ ```bash
312
+ raigal ci # JSON output, exits 1 if score < threshold
313
+ raigal ci --changes --base origin/main # gate only the files a PR changes
314
+ raigal ci --human # human-friendly CI output
315
+ raigal ci --sarif # SARIF output for code scanning
316
+ ```
317
+
318
+ `ci` accepts the same `--changes` / `--staged` / `--base <ref>` scoping as `scan`. Use `--changes --base origin/<target>` to gate a pull request on only the files it touches; the score gate and exit code still apply.
319
+
320
+ ### Other commands
321
+
322
+ ```bash
323
+ raigal # interactive menu
324
+ raigal init # create .raigal/config.yml
325
+ raigal init --strict # enterprise-grade gate: all engines, typecheck, failBelow 85
326
+ raigal doctor # check which engines can run here
327
+ raigal rules # list rules with severity, fixability, and score impact
328
+ raigal rules --search # searchable rule explorer
329
+ raigal badge # print badge URL
330
+ raigal badge --owner o --repo r --json
331
+ raigal trend # show score history over time
332
+ raigal trends # alias for trend
333
+ raigal trend --limit 20
334
+ raigal update # show current and latest npm versions
335
+ raigal upgrade # alias for update
336
+ raigal commands # full command list
337
+ ```
338
+
339
+ **Score history**: a normal (full-project, interactive) `scan` appends a compact record to `.raigal/history.jsonl` (timestamp, score, error/warning counts, file count, CLI version). `raigal trend` and `raigal trends` read it and print a relative-time table plus an ASCII sparkline of recent scores. History is a local side effect only: it is never written for `--json`/`--sarif` output, in CI, or when `RAIGAL_NO_HISTORY=1` is set, so machine output stays clean.
340
+
341
+ Docs: [commands](docs/commands.md)
342
+
343
+ ---
344
+
345
+ ## CI integration
346
+
347
+ ### Pre-commit
348
+
349
+ Run directly on staged files:
350
+
351
+ ```bash
352
+ raigal scan --staged
353
+ ```
354
+
355
+ By default, `scan` exits 1 only on error-severity findings. To block commits on warnings, pass `--fail-on warning`.
356
+
357
+ Or wire it into the [pre-commit](https://pre-commit.com) framework via the bundled hook:
358
+
359
+ ```yaml
360
+ # .pre-commit-config.yaml
361
+ repos:
362
+ - repo: https://github.com/meethiu/raigal
363
+ rev: v1
364
+ hooks:
365
+ - id: raigal
366
+ ```
367
+
368
+ ### GitHub Actions
369
+
370
+ Add `.github/workflows/raigal.yml` to your repository. Provide your organization token via the `RAIGAL_TOKEN` secret. Setting `id-token: write` enables GitHub OIDC verification so the server can verify the repository owner:
371
+
372
+ ```yaml
373
+ name: raigal
374
+ on:
375
+ pull_request:
376
+ push:
377
+ branches: [main]
378
+ permissions:
379
+ contents: read
380
+ id-token: write
381
+ jobs:
382
+ raigal:
383
+ runs-on: ubuntu-latest
384
+ steps:
385
+ - uses: actions/checkout@v4
386
+ with:
387
+ fetch-depth: 0
388
+ - uses: actions/setup-node@v4
389
+ with:
390
+ node-version: 24
391
+ - name: Raigal Quality Gate
392
+ run: npx --yes raigal@latest ci
393
+ env:
394
+ RAIGAL_TOKEN: ${{ secrets.RAIGAL_TOKEN }}
395
+ ```
396
+
397
+ **GitHub code scanning (SARIF)**: emit a SARIF 2.1.0 report and upload it so findings appear in the Security tab:
398
+
399
+ ```yaml
400
+ - run: npx raigal@latest scan . --sarif > raigal.sarif
401
+ - uses: github/codeql-action/upload-sarif@v3
402
+ with:
403
+ sarif_file: raigal.sarif
404
+ ```
405
+
406
+ ### Bitbucket Pipelines
407
+
408
+ Bitbucket clones shallow by default, so fetch the PR target branch and gate on only the changed files with `ci --changes --base`:
409
+
410
+ ```yaml
411
+ # bitbucket-pipelines.yml
412
+ pipelines:
413
+ pull-requests:
414
+ "**":
415
+ - step:
416
+ name: raigal gate
417
+ image: node:24
418
+ clone:
419
+ depth: full # branch diffs need history
420
+ script:
421
+ - git fetch origin "$BITBUCKET_PR_DESTINATION_BRANCH"
422
+ - npx --yes raigal@latest ci --changes --base FETCH_HEAD
423
+ ```
424
+
425
+ `ci` applies the score gate and exit code, so no JSON parsing or hand-rolled threshold is needed. More providers: [CI/CD](docs/ci.md).
426
+
427
+ ### Quality gate
428
+
429
+ Set minimum score in `.raigal/config.yml`:
430
+
431
+ ```yaml
432
+ ci:
433
+ failBelow: 70
434
+ ```
435
+
436
+ `raigal ci` exits 1 when score < threshold. Docs: [CI/CD](docs/ci.md)
437
+
438
+ ---
439
+
440
+ ## For teams
441
+
442
+ [Raigal](https://raigal.dev) is the hosted platform for teams:
443
+
444
+ - PR gates with score thresholds
445
+ - Standards hierarchy (org -> team -> project)
446
+ - Dashboards and agent attribution
447
+ - Visual rules manager
448
+
449
+ Same engines, same scores. Central policy and audit. [Learn more](https://raigal.dev)
450
+
451
+ ---
452
+
453
+ ## Why Raigal
454
+
455
+ AI coding tools generate code that compiles and passes tests but ships with patterns no engineer would write. `raigal` gives you one score, one gate, and auto-fixes what it can.
456
+
457
+ - **One score**: 0-100, enforced in CI. Weighted so sloppy patterns hit harder than style noise.
458
+ - **Auto-fix first**: Clears formatters, unused imports, dead code mechanically. Hands off the rest to your agent with full context.
459
+ - **Deterministic**: Regex + AST + standard tooling. No LLMs, no API calls. Same code in, same score out.
460
+ - **Fast onboarding**: Runs with your organization session (`raigal login`) or CI token (`RAIGAL_TOKEN`). Add `.raigal/config.yml` to tune.
461
+
462
+ ## What it catches
463
+
464
+ Six deterministic engines run in parallel:
465
+
466
+ | Engine | What it checks | How |
467
+ |---|---|---|
468
+ | **Formatting** | Code style consistency | Biome, ruff, gofmt, cargo fmt, rubocop, php-cs-fixer, dotnet format, clang-format |
469
+ | **Linting** | Language-specific issues | oxlint, ruff, golangci-lint, clippy, expo-doctor, Roslynator, JetBrains InspectCode, cppcheck, clang-tidy |
470
+ | **Code Quality** | Complexity and dead code | Function/file size limits, deep nesting, unused files/deps (knip), AST-based unused-declaration removal |
471
+ | **AI Slop** | AI-authored code patterns | Narrative comments, trivial comments, dead patterns, unused imports, `as any`, `console.log` leftovers, TODO stubs, generic names |
472
+ | **Security** | Vulnerabilities and risky code | eval, innerHTML, SQL/shell injection, dependency audits for JavaScript, Python, Rust, Go, and .NET |
473
+ | **Architecture** | Structural rules (opt-in) | Custom import bans, layering rules, required patterns |
474
+
475
+ See the full [rules reference](docs/rules.md).
476
+
477
+ ---
478
+
479
+ ## Research
480
+
481
+ Raigal rules are shaped by public scans and benchmark-derived failure modes, not only local fixtures. The [research program](docs/research-program.md) defines how to run repeatable open-source scans: pin the cohort, store raw JSON, classify findings, fix noisy rules with regression tests, and publish the limits.
482
+
483
+ ---
484
+
485
+ ## Docs
486
+
487
+ [Installation](docs/installation.md) · [Commands](docs/commands.md) · [Rules](docs/rules.md) · [Config](docs/configuration.md) · [Scoring](docs/scoring.md) · [CI/CD](docs/ci.md) · [Telemetry](docs/telemetry.md) · [Research program](docs/research-program.md)
488
+
489
+ ## Community
490
+
491
+ [Discord](https://discord.gg/Mzz4A6mfj6) for community chat and support · [Discussions](https://github.com/meethiu/raigal/discussions) for questions, rule requests, and false-positive triage · [Issues](https://github.com/meethiu/raigal/issues) for bugs
492
+
493
+ ## Contributing
494
+
495
+ See [CONTRIBUTING.md](CONTRIBUTING.md). AI assistants: [AGENTS.md](AGENTS.md).
496
+
497
+ ## Acknowledgments
498
+
499
+ Built on: [Biome](https://biomejs.dev/), [oxlint](https://oxc.rs/), [knip](https://knip.dev/), [ruff](https://docs.astral.sh/ruff/), [golangci-lint](https://golangci-lint.run/), [expo-doctor](https://docs.expo.dev/)
500
+
501
+ ## Contributors
502
+
503
+ <!-- CONTRIBUTORS-START -->
504
+ - [@meethiu](https://github.com/meethiu)
505
+ <!-- CONTRIBUTORS-END -->
506
+
507
+ Auto-updated by `.github/workflows/contributors.yml`. [Link commit email](https://github.com/settings/emails) or add to [`.github/contributors-overrides.json`](.github/contributors-overrides.json).
508
+
509
+ ## License
510
+
511
+ Proprietary. All rights reserved. Use is permitted only under a written agreement with Raigal. See [LICENSE](LICENSE) and [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md).