@rigour-labs/core 6.5.2 → 6.5.4

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 (138) hide show
  1. package/README.md +1 -1
  2. package/dist/context/automatic-index.d.ts +5 -0
  3. package/dist/context/automatic-index.js +24 -3
  4. package/dist/context/index-status.test.d.ts +1 -0
  5. package/dist/context/index-status.test.js +26 -0
  6. package/dist/deep/risk.d.ts +6 -0
  7. package/dist/deep/risk.js +7 -1
  8. package/dist/deep/risk.test.js +12 -1
  9. package/dist/firewall/arbitration-token.d.ts +12 -3
  10. package/dist/firewall/arbitration-token.js +30 -23
  11. package/dist/firewall/attestation.d.ts +7 -2
  12. package/dist/firewall/attestation.js +49 -28
  13. package/dist/firewall/trust-boundaries.test.d.ts +1 -0
  14. package/dist/firewall/trust-boundaries.test.js +64 -0
  15. package/dist/gates/dedupe-failures.test.d.ts +1 -0
  16. package/dist/gates/dedupe-failures.test.js +12 -0
  17. package/dist/gates/deep-analysis.d.ts +6 -0
  18. package/dist/gates/deep-analysis.js +8 -1
  19. package/dist/gates/deprecated-dependencies.d.ts +27 -0
  20. package/dist/gates/deprecated-dependencies.js +104 -0
  21. package/dist/gates/deprecated-dependencies.test.d.ts +1 -0
  22. package/dist/gates/deprecated-dependencies.test.js +55 -0
  23. package/dist/gates/runner.d.ts +7 -1
  24. package/dist/gates/runner.js +25 -11
  25. package/dist/gates/security-patterns-data.js +2 -1
  26. package/dist/gates/security-patterns-owasp.test.js +15 -0
  27. package/dist/gates/semantic-bugs.js +1 -1
  28. package/dist/gates/trusted-reviews.test.d.ts +1 -0
  29. package/dist/gates/trusted-reviews.test.js +16 -0
  30. package/dist/gates/unindexed-reads/coverage.d.ts +15 -0
  31. package/dist/gates/unindexed-reads/coverage.js +24 -0
  32. package/dist/gates/unindexed-reads/index.d.ts +20 -0
  33. package/dist/gates/unindexed-reads/index.js +98 -0
  34. package/dist/gates/unindexed-reads/queries.d.ts +17 -0
  35. package/dist/gates/unindexed-reads/queries.js +147 -0
  36. package/dist/gates/unindexed-reads/queries.test.d.ts +1 -0
  37. package/dist/gates/unindexed-reads/queries.test.js +54 -0
  38. package/dist/gates/unindexed-reads/schema.d.ts +38 -0
  39. package/dist/gates/unindexed-reads/schema.js +256 -0
  40. package/dist/gates/unindexed-reads/schema.test.d.ts +1 -0
  41. package/dist/gates/unindexed-reads/schema.test.js +81 -0
  42. package/dist/gates/unindexed-reads/sql.d.ts +21 -0
  43. package/dist/gates/unindexed-reads/sql.js +131 -0
  44. package/dist/gates/unindexed-reads/unindexed-reads.test.d.ts +1 -0
  45. package/dist/gates/unindexed-reads/unindexed-reads.test.js +90 -0
  46. package/dist/hooks/checker.js +22 -0
  47. package/dist/hooks/checker.test.js +8 -0
  48. package/dist/hooks/index.d.ts +1 -0
  49. package/dist/hooks/index.js +1 -0
  50. package/dist/hooks/session-state.d.ts +8 -0
  51. package/dist/hooks/session-state.js +61 -0
  52. package/dist/hooks/stop-review.d.ts +6 -4
  53. package/dist/hooks/stop-review.js +5 -3
  54. package/dist/hooks/templates.js +1 -1
  55. package/dist/index.d.ts +6 -1
  56. package/dist/index.js +6 -1
  57. package/dist/inference/brain-placeholder.test.d.ts +1 -0
  58. package/dist/inference/brain-placeholder.test.js +28 -0
  59. package/dist/inference/llama-engine-checksum.test.d.ts +1 -0
  60. package/dist/inference/llama-engine-checksum.test.js +27 -0
  61. package/dist/inference/llama-engine.d.ts +4 -1
  62. package/dist/inference/llama-engine.js +15 -8
  63. package/dist/memory/recall.d.ts +37 -0
  64. package/dist/memory/recall.js +93 -0
  65. package/dist/memory/recall.test.d.ts +1 -0
  66. package/dist/memory/recall.test.js +36 -0
  67. package/dist/pattern-index/assess.d.ts +16 -0
  68. package/dist/pattern-index/assess.js +37 -0
  69. package/dist/pattern-index/embeddings.d.ts +19 -0
  70. package/dist/pattern-index/embeddings.js +16 -0
  71. package/dist/pattern-index/index.d.ts +3 -2
  72. package/dist/pattern-index/index.js +4 -2
  73. package/dist/pattern-index/indexer.js +15 -7
  74. package/dist/pattern-index/matcher.d.ts +6 -0
  75. package/dist/pattern-index/matcher.js +13 -3
  76. package/dist/pattern-index/pattern-reuse.test.d.ts +1 -0
  77. package/dist/pattern-index/pattern-reuse.test.js +76 -0
  78. package/dist/pattern-index/staleness.d.ts +2 -15
  79. package/dist/pattern-index/staleness.js +1 -78
  80. package/dist/pattern-index/types.d.ts +2 -0
  81. package/dist/review/agent-fixes.d.ts +4 -0
  82. package/dist/review/agent-fixes.js +10 -7
  83. package/dist/review/agent-fixes.test.js +4 -4
  84. package/dist/review/changed-lines.d.ts +2 -1
  85. package/dist/review/changed-lines.js +12 -2
  86. package/dist/review/check-outcomes.d.ts +32 -0
  87. package/dist/review/check-outcomes.js +90 -0
  88. package/dist/review/check-outcomes.test.d.ts +1 -0
  89. package/dist/review/check-outcomes.test.js +56 -0
  90. package/dist/review/git-diff.d.ts +3 -0
  91. package/dist/review/git-diff.js +5 -0
  92. package/dist/review/migration-order.d.ts +5 -0
  93. package/dist/review/migration-order.js +70 -0
  94. package/dist/review/migration-order.test.d.ts +1 -0
  95. package/dist/review/migration-order.test.js +62 -0
  96. package/dist/review/quiet.d.ts +5 -2
  97. package/dist/review/quiet.js +21 -8
  98. package/dist/review/review.d.ts +6 -0
  99. package/dist/review/review.js +20 -3
  100. package/dist/review/review.test.js +30 -0
  101. package/dist/review/trusted-state.d.ts +6 -0
  102. package/dist/review/trusted-state.js +35 -0
  103. package/dist/semantic/ast.d.ts +1 -0
  104. package/dist/semantic/ast.js +4 -0
  105. package/dist/semantic/learn/compile.js +3 -1
  106. package/dist/semantic/learn/learn.js +40 -5
  107. package/dist/semantic/types.d.ts +2 -0
  108. package/dist/services/context-scope-summary.test.d.ts +1 -0
  109. package/dist/services/context-scope-summary.test.js +17 -0
  110. package/dist/services/context-telemetry-service.js +2 -1
  111. package/dist/storage/context-telemetry.js +33 -19
  112. package/dist/storage/db.js +52 -1
  113. package/dist/storage/findings.js +1 -1
  114. package/dist/storage/fix-lessons.d.ts +13 -0
  115. package/dist/storage/fix-lessons.js +84 -0
  116. package/dist/storage/fix-lessons.test.d.ts +1 -0
  117. package/dist/storage/fix-lessons.test.js +61 -0
  118. package/dist/storage/index.d.ts +2 -1
  119. package/dist/storage/index.js +2 -1
  120. package/dist/storage/lessons.d.ts +16 -2
  121. package/dist/storage/lessons.js +27 -61
  122. package/dist/storage/lessons.test.js +1 -15
  123. package/dist/storage/local-memory.js +39 -5
  124. package/dist/storage/local-memory.test.d.ts +1 -0
  125. package/dist/storage/local-memory.test.js +55 -0
  126. package/dist/storage/patterns.d.ts +1 -1
  127. package/dist/storage/patterns.js +1 -1
  128. package/dist/storage/share-memory.test.d.ts +1 -0
  129. package/dist/storage/share-memory.test.js +34 -0
  130. package/dist/storage/team-vector-store.js +2 -1
  131. package/dist/storage/telemetry-scope.test.d.ts +1 -0
  132. package/dist/storage/telemetry-scope.test.js +38 -0
  133. package/dist/templates/universal-config.js +11 -0
  134. package/dist/types/index.d.ts +137 -0
  135. package/dist/types/index.js +15 -0
  136. package/dist/utils/user-state.d.ts +7 -0
  137. package/dist/utils/user-state.js +21 -0
  138. package/package.json +7 -7
@@ -498,6 +498,36 @@ export declare const GatesSchema: z.ZodObject<{
498
498
  custom_patterns?: string[] | undefined;
499
499
  audit_log?: boolean | undefined;
500
500
  }>>>;
501
+ unindexed_reads: z.ZodDefault<z.ZodOptional<z.ZodObject<{
502
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
503
+ migrations: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
504
+ }, "strip", z.ZodTypeAny, {
505
+ enabled: boolean;
506
+ migrations: string[];
507
+ }, {
508
+ enabled?: boolean | undefined;
509
+ migrations?: string[] | undefined;
510
+ }>>>;
511
+ deprecated_dependencies: z.ZodDefault<z.ZodOptional<z.ZodObject<{
512
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
513
+ registry: z.ZodOptional<z.ZodString>;
514
+ }, "strip", z.ZodTypeAny, {
515
+ enabled: boolean;
516
+ registry?: string | undefined;
517
+ }, {
518
+ enabled?: boolean | undefined;
519
+ registry?: string | undefined;
520
+ }>>>;
521
+ migration_order: z.ZodDefault<z.ZodOptional<z.ZodObject<{
522
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
523
+ dirs: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
524
+ }, "strip", z.ZodTypeAny, {
525
+ enabled: boolean;
526
+ dirs: string[];
527
+ }, {
528
+ enabled?: boolean | undefined;
529
+ dirs?: string[] | undefined;
530
+ }>>>;
501
531
  semantic_bugs: z.ZodDefault<z.ZodOptional<z.ZodObject<{
502
532
  enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
503
533
  rules: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
@@ -917,6 +947,18 @@ export declare const GatesSchema: z.ZodObject<{
917
947
  custom_patterns: string[];
918
948
  audit_log: boolean;
919
949
  };
950
+ unindexed_reads: {
951
+ enabled: boolean;
952
+ migrations: string[];
953
+ };
954
+ deprecated_dependencies: {
955
+ enabled: boolean;
956
+ registry?: string | undefined;
957
+ };
958
+ migration_order: {
959
+ enabled: boolean;
960
+ dirs: string[];
961
+ };
920
962
  semantic_bugs: {
921
963
  enabled: boolean;
922
964
  rules?: string[] | undefined;
@@ -1160,6 +1202,18 @@ export declare const GatesSchema: z.ZodObject<{
1160
1202
  custom_patterns?: string[] | undefined;
1161
1203
  audit_log?: boolean | undefined;
1162
1204
  } | undefined;
1205
+ unindexed_reads?: {
1206
+ enabled?: boolean | undefined;
1207
+ migrations?: string[] | undefined;
1208
+ } | undefined;
1209
+ deprecated_dependencies?: {
1210
+ enabled?: boolean | undefined;
1211
+ registry?: string | undefined;
1212
+ } | undefined;
1213
+ migration_order?: {
1214
+ enabled?: boolean | undefined;
1215
+ dirs?: string[] | undefined;
1216
+ } | undefined;
1163
1217
  semantic_bugs?: {
1164
1218
  enabled?: boolean | undefined;
1165
1219
  rules?: string[] | undefined;
@@ -1752,6 +1806,36 @@ export declare const ConfigSchema: z.ZodObject<{
1752
1806
  custom_patterns?: string[] | undefined;
1753
1807
  audit_log?: boolean | undefined;
1754
1808
  }>>>;
1809
+ unindexed_reads: z.ZodDefault<z.ZodOptional<z.ZodObject<{
1810
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1811
+ migrations: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
1812
+ }, "strip", z.ZodTypeAny, {
1813
+ enabled: boolean;
1814
+ migrations: string[];
1815
+ }, {
1816
+ enabled?: boolean | undefined;
1817
+ migrations?: string[] | undefined;
1818
+ }>>>;
1819
+ deprecated_dependencies: z.ZodDefault<z.ZodOptional<z.ZodObject<{
1820
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1821
+ registry: z.ZodOptional<z.ZodString>;
1822
+ }, "strip", z.ZodTypeAny, {
1823
+ enabled: boolean;
1824
+ registry?: string | undefined;
1825
+ }, {
1826
+ enabled?: boolean | undefined;
1827
+ registry?: string | undefined;
1828
+ }>>>;
1829
+ migration_order: z.ZodDefault<z.ZodOptional<z.ZodObject<{
1830
+ enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1831
+ dirs: z.ZodDefault<z.ZodOptional<z.ZodArray<z.ZodString, "many">>>;
1832
+ }, "strip", z.ZodTypeAny, {
1833
+ enabled: boolean;
1834
+ dirs: string[];
1835
+ }, {
1836
+ enabled?: boolean | undefined;
1837
+ dirs?: string[] | undefined;
1838
+ }>>>;
1755
1839
  semantic_bugs: z.ZodDefault<z.ZodOptional<z.ZodObject<{
1756
1840
  enabled: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
1757
1841
  rules: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
@@ -2171,6 +2255,18 @@ export declare const ConfigSchema: z.ZodObject<{
2171
2255
  custom_patterns: string[];
2172
2256
  audit_log: boolean;
2173
2257
  };
2258
+ unindexed_reads: {
2259
+ enabled: boolean;
2260
+ migrations: string[];
2261
+ };
2262
+ deprecated_dependencies: {
2263
+ enabled: boolean;
2264
+ registry?: string | undefined;
2265
+ };
2266
+ migration_order: {
2267
+ enabled: boolean;
2268
+ dirs: string[];
2269
+ };
2174
2270
  semantic_bugs: {
2175
2271
  enabled: boolean;
2176
2272
  rules?: string[] | undefined;
@@ -2414,6 +2510,18 @@ export declare const ConfigSchema: z.ZodObject<{
2414
2510
  custom_patterns?: string[] | undefined;
2415
2511
  audit_log?: boolean | undefined;
2416
2512
  } | undefined;
2513
+ unindexed_reads?: {
2514
+ enabled?: boolean | undefined;
2515
+ migrations?: string[] | undefined;
2516
+ } | undefined;
2517
+ deprecated_dependencies?: {
2518
+ enabled?: boolean | undefined;
2519
+ registry?: string | undefined;
2520
+ } | undefined;
2521
+ migration_order?: {
2522
+ enabled?: boolean | undefined;
2523
+ dirs?: string[] | undefined;
2524
+ } | undefined;
2417
2525
  semantic_bugs?: {
2418
2526
  enabled?: boolean | undefined;
2419
2527
  rules?: string[] | undefined;
@@ -2712,6 +2820,18 @@ export declare const ConfigSchema: z.ZodObject<{
2712
2820
  custom_patterns: string[];
2713
2821
  audit_log: boolean;
2714
2822
  };
2823
+ unindexed_reads: {
2824
+ enabled: boolean;
2825
+ migrations: string[];
2826
+ };
2827
+ deprecated_dependencies: {
2828
+ enabled: boolean;
2829
+ registry?: string | undefined;
2830
+ };
2831
+ migration_order: {
2832
+ enabled: boolean;
2833
+ dirs: string[];
2834
+ };
2715
2835
  semantic_bugs: {
2716
2836
  enabled: boolean;
2717
2837
  rules?: string[] | undefined;
@@ -2985,6 +3105,18 @@ export declare const ConfigSchema: z.ZodObject<{
2985
3105
  custom_patterns?: string[] | undefined;
2986
3106
  audit_log?: boolean | undefined;
2987
3107
  } | undefined;
3108
+ unindexed_reads?: {
3109
+ enabled?: boolean | undefined;
3110
+ migrations?: string[] | undefined;
3111
+ } | undefined;
3112
+ deprecated_dependencies?: {
3113
+ enabled?: boolean | undefined;
3114
+ registry?: string | undefined;
3115
+ } | undefined;
3116
+ migration_order?: {
3117
+ enabled?: boolean | undefined;
3118
+ dirs?: string[] | undefined;
3119
+ } | undefined;
2988
3120
  semantic_bugs?: {
2989
3121
  enabled?: boolean | undefined;
2990
3122
  rules?: string[] | undefined;
@@ -3511,6 +3643,11 @@ export interface DeepOptions {
3511
3643
  }>>;
3512
3644
  /** What the change intends (a PR description): reference for the stronger tiers. */
3513
3645
  prBody?: string;
3646
+ /**
3647
+ * Review every risky changed function, ignoring the review ledger and reviewed.json. Those
3648
+ * record what an agent said it reviewed; an enforcing check reviews independently.
3649
+ */
3650
+ independent?: boolean;
3514
3651
  /** The change's unified diff (from reviewChange): a cloud agentic review reads the PR as a whole. */
3515
3652
  diff?: string;
3516
3653
  }
@@ -270,6 +270,21 @@ export const GatesSchema = z.object({
270
270
  }).optional().default({}),
271
271
  // v4.3+ Side-Effect Safety Analysis
272
272
  // On by default: full scans of three real repositories reported no finding that was not a real defect.
273
+ // A supabase-js read no index can serve, proved from the repository's own migrations (advisory, off by default).
274
+ unindexed_reads: z.object({
275
+ enabled: z.boolean().optional().default(false),
276
+ migrations: z.array(z.string()).optional().default([]),
277
+ }).optional().default({}),
278
+ // A dependency whose installed version npm marks deprecated (advisory, off by default: it asks the registry).
279
+ deprecated_dependencies: z.object({
280
+ enabled: z.boolean().optional().default(false),
281
+ registry: z.string().optional(),
282
+ }).optional().default({}),
283
+ // A migration added on a branch that sorts before the newest one on the base (advisory, off by default).
284
+ migration_order: z.object({
285
+ enabled: z.boolean().optional().default(false),
286
+ dirs: z.array(z.string()).optional().default(['**/supabase/migrations']),
287
+ }).optional().default({}),
273
288
  semantic_bugs: z.object({
274
289
  enabled: z.boolean().optional().default(true),
275
290
  rules: z.array(z.string()).optional(),
@@ -0,0 +1,7 @@
1
+ /** The user's Rigour directory: RIGOUR_HOME/.rigour when set (tests, sandboxes), else ~/.rigour. */
2
+ export declare function rigourUserDir(): string;
3
+ /**
4
+ * Per-repository state kept outside the workspace, where an agent editing the repository
5
+ * cannot rewrite it: arbitration tokens, stop-hook attempt counts. Keyed by the real path.
6
+ */
7
+ export declare function repoStateDir(cwd: string): string;
@@ -0,0 +1,21 @@
1
+ import crypto from 'crypto';
2
+ import fs from 'fs';
3
+ import os from 'os';
4
+ import path from 'path';
5
+ /** The user's Rigour directory: RIGOUR_HOME/.rigour when set (tests, sandboxes), else ~/.rigour. */
6
+ export function rigourUserDir() {
7
+ return path.join(process.env.RIGOUR_HOME || os.homedir(), '.rigour');
8
+ }
9
+ /**
10
+ * Per-repository state kept outside the workspace, where an agent editing the repository
11
+ * cannot rewrite it: arbitration tokens, stop-hook attempt counts. Keyed by the real path.
12
+ */
13
+ export function repoStateDir(cwd) {
14
+ let root = path.resolve(cwd);
15
+ try {
16
+ root = fs.realpathSync(root);
17
+ }
18
+ catch { /* not created yet: the resolved path is the key */ }
19
+ const key = crypto.createHash('sha256').update(root).digest('hex').slice(0, 16);
20
+ return path.join(rigourUserDir(), 'repos', key);
21
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@rigour-labs/core",
3
- "version": "6.5.2",
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#.",
3
+ "version": "6.5.4",
4
+ "description": "Rigour's review engine: deterministic gates on changed lines, rules and lessons learned from your team's fixes, and per-check precision from what you fix versus dismiss, across TypeScript, JavaScript, Python, Go, Ruby and C#.",
5
5
  "engines": {
6
6
  "node": ">=22"
7
7
  },
@@ -70,11 +70,11 @@
70
70
  "pg": "^8.16.3",
71
71
  "sqlite3": "^5.1.7",
72
72
  "openai": "^4.104.0",
73
- "@rigour-labs/brain-darwin-arm64": "6.5.2",
74
- "@rigour-labs/brain-linux-arm64": "6.5.2",
75
- "@rigour-labs/brain-darwin-x64": "6.5.2",
76
- "@rigour-labs/brain-win-x64": "6.5.2",
77
- "@rigour-labs/brain-linux-x64": "6.5.2"
73
+ "@rigour-labs/brain-darwin-arm64": "6.5.4",
74
+ "@rigour-labs/brain-darwin-x64": "6.5.4",
75
+ "@rigour-labs/brain-linux-arm64": "6.5.4",
76
+ "@rigour-labs/brain-linux-x64": "6.5.4",
77
+ "@rigour-labs/brain-win-x64": "6.5.4"
78
78
  },
79
79
  "devDependencies": {
80
80
  "@types/fs-extra": "^11.0.4",