@rigour-labs/core 6.4.0 → 6.4.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.
Files changed (107) hide show
  1. package/dist/deep/changed-functions.d.ts +15 -0
  2. package/dist/deep/changed-functions.js +34 -0
  3. package/dist/deep/code-pass.d.ts +10 -0
  4. package/dist/deep/code-pass.js +37 -2
  5. package/dist/deep/code-pass.test.d.ts +1 -0
  6. package/dist/deep/code-pass.test.js +69 -0
  7. package/dist/deep/code-review-prompt.d.ts +1 -1
  8. package/dist/deep/code-review-prompt.js +3 -2
  9. package/dist/deep/diff-tests/calls.d.ts +8 -0
  10. package/dist/deep/diff-tests/calls.js +85 -0
  11. package/dist/deep/diff-tests/calls.test.d.ts +1 -0
  12. package/dist/deep/diff-tests/calls.test.js +33 -0
  13. package/dist/deep/diff-tests/run.d.ts +21 -0
  14. package/dist/deep/diff-tests/run.js +178 -0
  15. package/dist/deep/diff-tests/run.test.d.ts +1 -0
  16. package/dist/deep/diff-tests/run.test.js +58 -0
  17. package/dist/deep/reference-pack.d.ts +19 -0
  18. package/dist/deep/reference-pack.js +101 -0
  19. package/dist/deep/reference-pack.test.d.ts +1 -0
  20. package/dist/deep/reference-pack.test.js +46 -0
  21. package/dist/deep/review-context-export.d.ts +11 -0
  22. package/dist/deep/review-context-export.js +31 -0
  23. package/dist/deep/review-context-export.test.d.ts +1 -0
  24. package/dist/deep/review-context-export.test.js +32 -0
  25. package/dist/deep/self-check.d.ts +21 -0
  26. package/dist/deep/self-check.js +49 -0
  27. package/dist/firewall/trusted-control.d.ts +1 -2
  28. package/dist/gates/deep-analysis.d.ts +2 -0
  29. package/dist/gates/deep-analysis.js +12 -0
  30. package/dist/gates/deep-runner.js +2 -1
  31. package/dist/gates/semantic-bugs.js +4 -3
  32. package/dist/gates/semantic-bugs.test.js +6 -0
  33. package/dist/hooks/checker.d.ts +1 -2
  34. package/dist/hooks/index.d.ts +2 -0
  35. package/dist/index.d.ts +20 -1
  36. package/dist/index.js +4 -5
  37. package/dist/inference/index.d.ts +1 -1
  38. package/dist/inference/index.js +3 -5
  39. package/dist/inference/local-model.test.d.ts +1 -0
  40. package/dist/inference/local-model.test.js +23 -0
  41. package/dist/inference/sidecar-provider.d.ts +10 -1
  42. package/dist/inference/sidecar-provider.js +28 -6
  43. package/dist/inference/types.d.ts +8 -1
  44. package/dist/inference/types.js +14 -0
  45. package/dist/inference/types.test.d.ts +1 -0
  46. package/dist/inference/types.test.js +19 -0
  47. package/dist/review/diff-test-findings.d.ts +3 -0
  48. package/dist/review/diff-test-findings.js +41 -0
  49. package/dist/review/review.d.ts +4 -2
  50. package/dist/review/review.js +5 -2
  51. package/dist/semantic/benchmark.js +2 -2
  52. package/dist/semantic/benchmark.test.js +5 -1
  53. package/dist/semantic/engine.d.ts +3 -0
  54. package/dist/semantic/engine.js +8 -2
  55. package/dist/semantic/failure-handling.d.ts +12 -0
  56. package/dist/semantic/failure-handling.js +41 -0
  57. package/dist/semantic/intent/parallel-reads.js +2 -30
  58. package/dist/semantic/project-facts.d.ts +25 -0
  59. package/dist/semantic/project-facts.js +104 -0
  60. package/dist/semantic/project-facts.test.d.ts +1 -0
  61. package/dist/semantic/project-facts.test.js +45 -0
  62. package/dist/semantic/rules/ecosystem/deps-codegen-undeclared-import.d.ts +2 -0
  63. package/dist/semantic/rules/ecosystem/deps-codegen-undeclared-import.js +71 -0
  64. package/dist/semantic/rules/ecosystem/deps-internal-symbol.d.ts +2 -0
  65. package/dist/semantic/rules/ecosystem/deps-internal-symbol.js +36 -0
  66. package/dist/semantic/rules/ecosystem/dom-self-query-in-component.d.ts +2 -0
  67. package/dist/semantic/rules/ecosystem/dom-self-query-in-component.js +60 -0
  68. package/dist/semantic/rules/ecosystem/env-bare-browser-global.d.ts +2 -0
  69. package/dist/semantic/rules/ecosystem/env-bare-browser-global.js +57 -0
  70. package/dist/semantic/rules/ecosystem/exports-condition-parity.d.ts +2 -0
  71. package/dist/semantic/rules/ecosystem/exports-condition-parity.js +57 -0
  72. package/dist/semantic/rules/ecosystem/exports-forgotten-type.d.ts +2 -0
  73. package/dist/semantic/rules/ecosystem/exports-forgotten-type.js +128 -0
  74. package/dist/semantic/rules/ecosystem/imports-barrel-cycle.d.ts +2 -0
  75. package/dist/semantic/rules/ecosystem/imports-barrel-cycle.js +78 -0
  76. package/dist/semantic/rules/ecosystem/index.d.ts +15 -0
  77. package/dist/semantic/rules/ecosystem/index.js +22 -0
  78. package/dist/semantic/rules/ecosystem/paths-unnormalized-module-key.d.ts +2 -0
  79. package/dist/semantic/rules/ecosystem/paths-unnormalized-module-key.js +87 -0
  80. package/dist/semantic/rules/ecosystem/react-inline-html-object.d.ts +2 -0
  81. package/dist/semantic/rules/ecosystem/react-inline-html-object.js +30 -0
  82. package/dist/semantic/rules/ecosystem/shared.d.ts +18 -0
  83. package/dist/semantic/rules/ecosystem/shared.js +43 -0
  84. package/dist/semantic/rules/ecosystem/solid-jsx-and-conditional.d.ts +2 -0
  85. package/dist/semantic/rules/ecosystem/solid-jsx-and-conditional.js +36 -0
  86. package/dist/semantic/rules/ecosystem/ts-internal-in-public-signature.d.ts +2 -0
  87. package/dist/semantic/rules/ecosystem/ts-internal-in-public-signature.js +66 -0
  88. package/dist/semantic/rules/ecosystem/vite-rollup-only-hook-field.d.ts +2 -0
  89. package/dist/semantic/rules/ecosystem/vite-rollup-only-hook-field.js +31 -0
  90. package/dist/semantic/rules/ecosystem/vue-static-computed.d.ts +2 -0
  91. package/dist/semantic/rules/ecosystem/vue-static-computed.js +51 -0
  92. package/dist/semantic/sites/call-sites.d.ts +25 -0
  93. package/dist/semantic/sites/call-sites.js +69 -0
  94. package/dist/semantic/sites/call-sites.test.d.ts +1 -0
  95. package/dist/semantic/sites/call-sites.test.js +46 -0
  96. package/dist/semantic/sites/export.d.ts +2 -0
  97. package/dist/semantic/sites/export.js +22 -0
  98. package/dist/semantic/types.d.ts +4 -0
  99. package/dist/services/engineering-knowledge-graph.d.ts +1 -2
  100. package/dist/templates/universal-config.js +1 -0
  101. package/dist/types/index.d.ts +31 -8
  102. package/dist/types/index.js +2 -1
  103. package/dist/utils/diff-removed.test.d.ts +1 -0
  104. package/dist/utils/diff-removed.test.js +29 -0
  105. package/dist/utils/diff.d.ts +12 -0
  106. package/dist/utils/diff.js +26 -0
  107. package/package.json +6 -6
@@ -577,6 +577,7 @@ export declare const GatesSchema: z.ZodObject<{
577
577
  deep: z.ZodDefault<z.ZodOptional<z.ZodObject<{
578
578
  enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
579
579
  pro: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
580
+ max: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
580
581
  provider: z.ZodDefault<z.ZodOptional<z.ZodString>>;
581
582
  api_key: z.ZodOptional<z.ZodString>;
582
583
  api_base_url: z.ZodOptional<z.ZodString>;
@@ -618,6 +619,7 @@ export declare const GatesSchema: z.ZodObject<{
618
619
  }, "strip", z.ZodTypeAny, {
619
620
  enabled: boolean;
620
621
  pro: boolean;
622
+ max: boolean;
621
623
  provider: string;
622
624
  threads: number;
623
625
  temperature: number;
@@ -641,6 +643,7 @@ export declare const GatesSchema: z.ZodObject<{
641
643
  }, {
642
644
  enabled?: boolean | undefined;
643
645
  pro?: boolean | undefined;
646
+ max?: boolean | undefined;
644
647
  provider?: string | undefined;
645
648
  api_key?: string | undefined;
646
649
  api_base_url?: string | undefined;
@@ -666,6 +669,7 @@ export declare const GatesSchema: z.ZodObject<{
666
669
  deep: {
667
670
  enabled: boolean;
668
671
  pro: boolean;
672
+ max: boolean;
669
673
  provider: string;
670
674
  threads: number;
671
675
  temperature: number;
@@ -899,6 +903,7 @@ export declare const GatesSchema: z.ZodObject<{
899
903
  deep?: {
900
904
  enabled?: boolean | undefined;
901
905
  pro?: boolean | undefined;
906
+ max?: boolean | undefined;
902
907
  provider?: string | undefined;
903
908
  api_key?: string | undefined;
904
909
  api_base_url?: string | undefined;
@@ -1766,6 +1771,7 @@ export declare const ConfigSchema: z.ZodObject<{
1766
1771
  deep: z.ZodDefault<z.ZodOptional<z.ZodObject<{
1767
1772
  enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1768
1773
  pro: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1774
+ max: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1769
1775
  provider: z.ZodDefault<z.ZodOptional<z.ZodString>>;
1770
1776
  api_key: z.ZodOptional<z.ZodString>;
1771
1777
  api_base_url: z.ZodOptional<z.ZodString>;
@@ -1807,6 +1813,7 @@ export declare const ConfigSchema: z.ZodObject<{
1807
1813
  }, "strip", z.ZodTypeAny, {
1808
1814
  enabled: boolean;
1809
1815
  pro: boolean;
1816
+ max: boolean;
1810
1817
  provider: string;
1811
1818
  threads: number;
1812
1819
  temperature: number;
@@ -1830,6 +1837,7 @@ export declare const ConfigSchema: z.ZodObject<{
1830
1837
  }, {
1831
1838
  enabled?: boolean | undefined;
1832
1839
  pro?: boolean | undefined;
1840
+ max?: boolean | undefined;
1833
1841
  provider?: string | undefined;
1834
1842
  api_key?: string | undefined;
1835
1843
  api_base_url?: string | undefined;
@@ -1855,6 +1863,7 @@ export declare const ConfigSchema: z.ZodObject<{
1855
1863
  deep: {
1856
1864
  enabled: boolean;
1857
1865
  pro: boolean;
1866
+ max: boolean;
1858
1867
  provider: string;
1859
1868
  threads: number;
1860
1869
  temperature: number;
@@ -2088,6 +2097,7 @@ export declare const ConfigSchema: z.ZodObject<{
2088
2097
  deep?: {
2089
2098
  enabled?: boolean | undefined;
2090
2099
  pro?: boolean | undefined;
2100
+ max?: boolean | undefined;
2091
2101
  provider?: string | undefined;
2092
2102
  api_key?: string | undefined;
2093
2103
  api_base_url?: string | undefined;
@@ -2363,6 +2373,7 @@ export declare const ConfigSchema: z.ZodObject<{
2363
2373
  deep: {
2364
2374
  enabled: boolean;
2365
2375
  pro: boolean;
2376
+ max: boolean;
2366
2377
  provider: string;
2367
2378
  threads: number;
2368
2379
  temperature: number;
@@ -2622,6 +2633,7 @@ export declare const ConfigSchema: z.ZodObject<{
2622
2633
  deep?: {
2623
2634
  enabled?: boolean | undefined;
2624
2635
  pro?: boolean | undefined;
2636
+ max?: boolean | undefined;
2625
2637
  provider?: string | undefined;
2626
2638
  api_key?: string | undefined;
2627
2639
  api_base_url?: string | undefined;
@@ -3003,7 +3015,7 @@ export declare const ReportSchema: z.ZodObject<{
3003
3015
  /** ok: every inference ran; partial: some failed; error: deep did not run. */
3004
3016
  status: z.ZodOptional<z.ZodEnum<["ok", "partial", "error"]>>;
3005
3017
  mode: z.ZodOptional<z.ZodEnum<["facts", "code"]>>;
3006
- tier: z.ZodOptional<z.ZodEnum<["deep", "lite", "legacy", "cloud"]>>;
3018
+ tier: z.ZodOptional<z.ZodEnum<["deep", "lite", "legacy", "max", "cloud"]>>;
3007
3019
  model: z.ZodOptional<z.ZodString>;
3008
3020
  model_fallback: z.ZodOptional<z.ZodBoolean>;
3009
3021
  total_ms: z.ZodOptional<z.ZodNumber>;
@@ -3018,7 +3030,7 @@ export declare const ReportSchema: z.ZodObject<{
3018
3030
  status?: "ok" | "partial" | "error" | undefined;
3019
3031
  mode?: "code" | "facts" | undefined;
3020
3032
  error?: string | undefined;
3021
- tier?: "deep" | "lite" | "legacy" | "cloud" | undefined;
3033
+ tier?: "deep" | "max" | "lite" | "legacy" | "cloud" | undefined;
3022
3034
  model?: string | undefined;
3023
3035
  model_fallback?: boolean | undefined;
3024
3036
  total_ms?: number | undefined;
@@ -3032,7 +3044,7 @@ export declare const ReportSchema: z.ZodObject<{
3032
3044
  status?: "ok" | "partial" | "error" | undefined;
3033
3045
  mode?: "code" | "facts" | undefined;
3034
3046
  error?: string | undefined;
3035
- tier?: "deep" | "lite" | "legacy" | "cloud" | undefined;
3047
+ tier?: "deep" | "max" | "lite" | "legacy" | "cloud" | undefined;
3036
3048
  model?: string | undefined;
3037
3049
  model_fallback?: boolean | undefined;
3038
3050
  total_ms?: number | undefined;
@@ -3049,7 +3061,7 @@ export declare const ReportSchema: z.ZodObject<{
3049
3061
  status?: "ok" | "partial" | "error" | undefined;
3050
3062
  mode?: "code" | "facts" | undefined;
3051
3063
  error?: string | undefined;
3052
- tier?: "deep" | "lite" | "legacy" | "cloud" | undefined;
3064
+ tier?: "deep" | "max" | "lite" | "legacy" | "cloud" | undefined;
3053
3065
  model?: string | undefined;
3054
3066
  model_fallback?: boolean | undefined;
3055
3067
  total_ms?: number | undefined;
@@ -3078,7 +3090,7 @@ export declare const ReportSchema: z.ZodObject<{
3078
3090
  status?: "ok" | "partial" | "error" | undefined;
3079
3091
  mode?: "code" | "facts" | undefined;
3080
3092
  error?: string | undefined;
3081
- tier?: "deep" | "lite" | "legacy" | "cloud" | undefined;
3093
+ tier?: "deep" | "max" | "lite" | "legacy" | "cloud" | undefined;
3082
3094
  model?: string | undefined;
3083
3095
  model_fallback?: boolean | undefined;
3084
3096
  total_ms?: number | undefined;
@@ -3109,7 +3121,7 @@ export declare const ReportSchema: z.ZodObject<{
3109
3121
  status?: "ok" | "partial" | "error" | undefined;
3110
3122
  mode?: "code" | "facts" | undefined;
3111
3123
  error?: string | undefined;
3112
- tier?: "deep" | "lite" | "legacy" | "cloud" | undefined;
3124
+ tier?: "deep" | "max" | "lite" | "legacy" | "cloud" | undefined;
3113
3125
  model?: string | undefined;
3114
3126
  model_fallback?: boolean | undefined;
3115
3127
  total_ms?: number | undefined;
@@ -3157,7 +3169,7 @@ export declare const ReportSchema: z.ZodObject<{
3157
3169
  status?: "ok" | "partial" | "error" | undefined;
3158
3170
  mode?: "code" | "facts" | undefined;
3159
3171
  error?: string | undefined;
3160
- tier?: "deep" | "lite" | "legacy" | "cloud" | undefined;
3172
+ tier?: "deep" | "max" | "lite" | "legacy" | "cloud" | undefined;
3161
3173
  model?: string | undefined;
3162
3174
  model_fallback?: boolean | undefined;
3163
3175
  total_ms?: number | undefined;
@@ -3199,10 +3211,14 @@ export declare const ReportSchema: z.ZodObject<{
3199
3211
  }[];
3200
3212
  }>;
3201
3213
  export type Report = z.infer<typeof ReportSchema>;
3202
- /** Options passed from CLI --deep / --pro / -k flags */
3214
+ /** Options passed from CLI --deep / --pro / --max / -k flags */
3203
3215
  export interface DeepOptions {
3204
3216
  enabled: boolean;
3205
3217
  pro?: boolean;
3218
+ /** Local 7B model: the strongest free tier, for laptops with 16GB. */
3219
+ max?: boolean;
3220
+ /** A local GGUF to run instead of the tier's published model (evaluating a fine-tune before release). */
3221
+ modelPath?: string;
3206
3222
  apiKey?: string;
3207
3223
  provider?: string;
3208
3224
  apiBaseUrl?: string;
@@ -3210,4 +3226,11 @@ export interface DeepOptions {
3210
3226
  agents?: number;
3211
3227
  maxFiles?: number;
3212
3228
  focusLines?: Record<string, number[]>;
3229
+ /** Lines the change removed per file, anchored at the new-side line (from a diff). */
3230
+ removedLines?: Record<string, Array<{
3231
+ line: number;
3232
+ text: string[];
3233
+ }>>;
3234
+ /** What the change intends (a PR description): reference for the stronger tiers. */
3235
+ prBody?: string;
3213
3236
  }
@@ -302,6 +302,7 @@ export const GatesSchema = z.object({
302
302
  deep: z.object({
303
303
  enabled: z.boolean().optional().default(false),
304
304
  pro: z.boolean().optional().default(false),
305
+ max: z.boolean().optional().default(false), // local Qwen2.5-Coder-7B (4.7GB); needs ~8GB free memory
305
306
  provider: z.string().optional().default('local'), // 'local' for sidecar, or any cloud: 'claude', 'openai', 'gemini', 'groq', 'mistral', 'together', etc.
306
307
  api_key: z.string().optional(),
307
308
  api_base_url: z.string().optional(), // custom API base URL (for self-hosted, proxies, any OpenAI-compatible endpoint)
@@ -413,7 +414,7 @@ export const ReportSchema = z.object({
413
414
  /** ok: every inference ran; partial: some failed; error: deep did not run. */
414
415
  status: z.enum(['ok', 'partial', 'error']).optional(),
415
416
  mode: z.enum(['facts', 'code']).optional(),
416
- tier: z.enum(['deep', 'lite', 'legacy', 'cloud']).optional(),
417
+ tier: z.enum(['deep', 'lite', 'legacy', 'max', 'cloud']).optional(),
417
418
  model: z.string().optional(),
418
419
  model_fallback: z.boolean().optional(),
419
420
  total_ms: z.number().optional(),
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,29 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { parseDiff, removedByFile } from './diff.js';
3
+ const DIFF = `diff --git a/src/a.ts b/src/a.ts
4
+ --- a/src/a.ts
5
+ +++ b/src/a.ts
6
+ @@ -1,5 +1,4 @@
7
+ export function load(id: string) {
8
+ - if (!id) return null;
9
+ - audit(id);
10
+ + audit(id ?? '');
11
+ return fetch(id);
12
+ }
13
+ @@ -20,2 +19,1 @@
14
+ -const legacy = true;
15
+ export const x = 1;
16
+ `;
17
+ describe('removedByFile', () => {
18
+ it('groups removed lines into blocks anchored at the new-side line', () => {
19
+ expect(removedByFile(DIFF)).toEqual({
20
+ 'src/a.ts': [
21
+ { line: 2, text: [' if (!id) return null;', ' audit(id);'] },
22
+ { line: 19, text: ['const legacy = true;'] },
23
+ ],
24
+ });
25
+ });
26
+ it('leaves added-line parsing unchanged', () => {
27
+ expect([...parseDiff(DIFF)['src/a.ts']]).toEqual([2]);
28
+ });
29
+ });
@@ -1,3 +1,15 @@
1
1
  export declare function parseDiff(diff: string): Record<string, Set<number>>;
2
2
  /** Changed lines as sorted arrays, the shape DeepOptions.focusLines takes. */
3
3
  export declare function changedLinesByFile(mapping: Record<string, Set<number>>): Record<string, number[]>;
4
+ /** Lines a change removed, anchored at the new-side line where they were. */
5
+ export interface RemovedBlock {
6
+ /** New-side line the removal sits before (1-based). */
7
+ line: number;
8
+ text: string[];
9
+ }
10
+ /**
11
+ * Removed lines per file, grouped into consecutive blocks. A reviewer needs
12
+ * what a change deleted as much as what it added: a dropped guard or a
13
+ * deleted call is invisible in the new file alone.
14
+ */
15
+ export declare function removedByFile(diff: string): Record<string, RemovedBlock[]>;
@@ -50,3 +50,29 @@ function readHunkHeader(state, line) {
50
50
  export function changedLinesByFile(mapping) {
51
51
  return Object.fromEntries(Object.entries(mapping).map(([file, lines]) => [file, [...lines].sort((a, b) => a - b)]));
52
52
  }
53
+ /**
54
+ * Removed lines per file, grouped into consecutive blocks. A reviewer needs
55
+ * what a change deleted as much as what it added: a dropped guard or a
56
+ * deleted call is invisible in the new file alone.
57
+ */
58
+ export function removedByFile(diff) {
59
+ const removed = {};
60
+ const state = { mapping: {}, file: '', newLine: 0, oldLeft: 0, newLeft: 0 };
61
+ let open = null;
62
+ for (const line of diff.split('\n')) {
63
+ const inHunk = state.oldLeft > 0 || state.newLeft > 0;
64
+ if (inHunk && line.startsWith('-') && state.file) {
65
+ if (!open)
66
+ (removed[state.file] ??= []).push(open = { line: state.newLine, text: [] });
67
+ open.text.push(line.slice(1));
68
+ }
69
+ else if (!line.startsWith('\\')) {
70
+ open = null;
71
+ }
72
+ if (inHunk)
73
+ readHunkLine(state, line);
74
+ else
75
+ readHeaderLine(state, line);
76
+ }
77
+ return removed;
78
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rigour-labs/core",
3
- "version": "6.4.0",
3
+ "version": "6.4.1",
4
4
  "description": "AI-native quality gate engine with local Bayesian learning. AST analysis, drift detection, Fix Packet generation, and agent self-healing across TypeScript, JavaScript, Python, Go, Ruby, and C#.",
5
5
  "license": "MIT",
6
6
  "homepage": "https://rigour.run",
@@ -67,11 +67,11 @@
67
67
  "pg": "^8.16.3",
68
68
  "sqlite3": "^5.1.7",
69
69
  "openai": "^4.104.0",
70
- "@rigour-labs/brain-darwin-arm64": "6.4.0",
71
- "@rigour-labs/brain-linux-arm64": "6.4.0",
72
- "@rigour-labs/brain-darwin-x64": "6.4.0",
73
- "@rigour-labs/brain-linux-x64": "6.4.0",
74
- "@rigour-labs/brain-win-x64": "6.4.0"
70
+ "@rigour-labs/brain-darwin-arm64": "6.4.1",
71
+ "@rigour-labs/brain-darwin-x64": "6.4.1",
72
+ "@rigour-labs/brain-linux-x64": "6.4.1",
73
+ "@rigour-labs/brain-win-x64": "6.4.1",
74
+ "@rigour-labs/brain-linux-arm64": "6.4.1"
75
75
  },
76
76
  "devDependencies": {
77
77
  "@types/fs-extra": "^11.0.4",