@rigstate/cli 0.7.18 → 0.7.20

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.
@@ -0,0 +1,79 @@
1
+ [
2
+ {
3
+ "skillId": "rigstate-legacy-renovator",
4
+ "patterns": {
5
+ "content": [
6
+ "Vibeline"
7
+ ]
8
+ },
9
+ "confidence": "high"
10
+ },
11
+ {
12
+ "skillId": "sec-sql-01",
13
+ "patterns": {
14
+ "files": [
15
+ "**/*.ts",
16
+ "**/*.js"
17
+ ],
18
+ "content": [
19
+ "rpc(",
20
+ "execute(",
21
+ "query("
22
+ ]
23
+ },
24
+ "confidence": "high"
25
+ },
26
+ {
27
+ "skillId": "sec-rls-01",
28
+ "patterns": {
29
+ "files": [
30
+ "supabase/migrations/*.sql"
31
+ ]
32
+ },
33
+ "confidence": "high"
34
+ },
35
+ {
36
+ "skillId": "sec-key-01",
37
+ "patterns": {
38
+ "content": [
39
+ "sk_live_",
40
+ "sk_test_",
41
+ "AIza",
42
+ "eyJ"
43
+ ]
44
+ },
45
+ "confidence": "high"
46
+ },
47
+ {
48
+ "skillId": "sec-ui-01",
49
+ "patterns": {
50
+ "content": [
51
+ "dangerouslySetInnerHTML"
52
+ ]
53
+ },
54
+ "confidence": "high"
55
+ },
56
+ {
57
+ "skillId": "sec-auth-04",
58
+ "patterns": {
59
+ "files": [
60
+ "app/api/**/*.ts",
61
+ "app/api/**/*.js"
62
+ ],
63
+ "content": [
64
+ "supabase.from",
65
+ "db.select"
66
+ ]
67
+ },
68
+ "confidence": "high"
69
+ },
70
+ {
71
+ "skillId": "rigstate-integrity-gate",
72
+ "patterns": {
73
+ "content": [
74
+ "[CORE INTEGRITY]"
75
+ ]
76
+ },
77
+ "confidence": "high"
78
+ }
79
+ ]
@@ -0,0 +1 @@
1
+ 36637
@@ -0,0 +1,8 @@
1
+ {
2
+ "isRunning": true,
3
+ "startedAt": "2026-01-25T19:54:24.755Z",
4
+ "filesChecked": 5,
5
+ "violationsFound": 909,
6
+ "tasksProcessed": 0,
7
+ "lastActivity": "2026-01-25T20:20:14.355Z"
8
+ }
@@ -0,0 +1,7 @@
1
+ HARD_LOCK_ACTIVE
2
+ Timestamp: 2026-01-25T20:20:15.037Z
3
+
4
+ Blocking Files:
5
+ src/commands/daemon.ts
6
+ dist/index.cjs
7
+ dist/index.js
@@ -0,0 +1,166 @@
1
+ {
2
+ "timestamp": "2026-01-25T20:16:38.778Z",
3
+ "projectId": "bb9f8445-39fd-438c-8ab6-8057f5514395",
4
+ "rules": [
5
+ {
6
+ "id": "7eec5cbe-b7e4-4710-ba93-6231e3fc180c",
7
+ "rule_name": "modular_actions",
8
+ "rule_type": "CUSTOM",
9
+ "value": {
10
+ "description": "Server actions should be split by domain"
11
+ },
12
+ "severity": "info",
13
+ "description": "Keep server actions modular and domain-specific.",
14
+ "source": "global",
15
+ "is_enabled": true
16
+ },
17
+ {
18
+ "id": "600c2477-c85e-4939-8ff7-cb31d388be67",
19
+ "rule_name": "STRICT_MODULARIZATION",
20
+ "rule_type": "CUSTOM",
21
+ "value": {
22
+ "enforce_separation": true
23
+ },
24
+ "severity": "error",
25
+ "description": "Enforce strict separation between Logic (Hooks/Labs) and UI Components.",
26
+ "source": "global",
27
+ "is_enabled": true
28
+ },
29
+ {
30
+ "id": "639aec86-e7d1-4a95-bde8-1f41d8336ce3",
31
+ "rule_name": "COMPLEXITY_GUARD",
32
+ "rule_type": "CUSTOM",
33
+ "value": {
34
+ "max_complexity": 10
35
+ },
36
+ "severity": "warning",
37
+ "description": "Warn when functions become too complex (cyclomatic complexity > 10).",
38
+ "source": "global",
39
+ "is_enabled": true
40
+ },
41
+ {
42
+ "id": "d82d6647-bb47-4295-a5a7-799ebc39d04d",
43
+ "rule_name": "TYPED_CONTRACTS",
44
+ "rule_type": "CUSTOM",
45
+ "value": {
46
+ "strict_interfaces": true
47
+ },
48
+ "severity": "error",
49
+ "description": "Require explicit TypeScript interfaces for all component props and API responses.",
50
+ "source": "global",
51
+ "is_enabled": true
52
+ },
53
+ {
54
+ "id": "865bdd84-870b-4c7a-99f1-8a3297abde68",
55
+ "rule_name": "SINGLE_RESPONSIBILITY",
56
+ "rule_type": "CUSTOM",
57
+ "value": {
58
+ "max_exports": 1
59
+ },
60
+ "severity": "info",
61
+ "description": "Encourage one primary export per file to maintain single responsibility.",
62
+ "source": "global",
63
+ "is_enabled": true
64
+ },
65
+ {
66
+ "id": "4e9a89af-89ca-4af6-916f-40846821aa09",
67
+ "rule_name": "folder_structure",
68
+ "rule_type": "CUSTOM",
69
+ "value": {
70
+ "required_folders": [
71
+ "lib",
72
+ "components",
73
+ "actions"
74
+ ]
75
+ },
76
+ "severity": "warning",
77
+ "description": "Require standard folder structure (lib/, components/, actions/).",
78
+ "source": "global",
79
+ "is_enabled": true
80
+ },
81
+ {
82
+ "id": "6c2b4d8a-c82b-4dc0-b205-c932558bc1c2",
83
+ "rule_name": "max_file_lines",
84
+ "rule_type": "MAX_FILE_LINES",
85
+ "value": {
86
+ "limit": 300,
87
+ "warning_threshold": 250
88
+ },
89
+ "severity": "warning",
90
+ "description": "Files should not exceed 300 lines. Warning at 250.",
91
+ "source": "global",
92
+ "is_enabled": true
93
+ },
94
+ {
95
+ "id": "31942cae-6be9-4961-a969-498af7450e00",
96
+ "rule_name": "MAX_FILE_LINES",
97
+ "rule_type": "MAX_FILE_LINES",
98
+ "value": {
99
+ "limit": 300
100
+ },
101
+ "severity": "warning",
102
+ "description": "Enforce a maximum of 300 lines per file to ensure readability.",
103
+ "source": "global",
104
+ "is_enabled": true
105
+ },
106
+ {
107
+ "id": "13ab9d0c-1943-44ad-8da9-7fd9e9b357f3",
108
+ "rule_name": "max_function_lines",
109
+ "rule_type": "MAX_FUNCTION_LINES",
110
+ "value": {
111
+ "limit": 50,
112
+ "warning_threshold": 35
113
+ },
114
+ "severity": "warning",
115
+ "description": "Functions should not exceed 50 lines. Warning at 35.",
116
+ "source": "global",
117
+ "is_enabled": true
118
+ },
119
+ {
120
+ "id": "4749bce0-21eb-48a4-ad72-0e8e8f8ca032",
121
+ "rule_name": "component_naming",
122
+ "rule_type": "NAMING_CONVENTION",
123
+ "value": {
124
+ "context": "React components",
125
+ "pattern": "^[A-Z][a-zA-Z]*$"
126
+ },
127
+ "severity": "warning",
128
+ "description": "React components must use PascalCase.",
129
+ "source": "global",
130
+ "is_enabled": true
131
+ },
132
+ {
133
+ "id": "9fdddfc2-7af3-4e51-8ed8-4d0ca4a05a98",
134
+ "rule_name": "no_console_log",
135
+ "rule_type": "PATTERN_FORBIDDEN",
136
+ "value": {
137
+ "pattern": "console\\.log",
138
+ "allow_in": [
139
+ "*.test.ts",
140
+ "*.spec.ts"
141
+ ]
142
+ },
143
+ "severity": "info",
144
+ "description": "Avoid console.log in production code.",
145
+ "source": "global",
146
+ "is_enabled": true
147
+ },
148
+ {
149
+ "id": "d403cd91-7b9e-410b-819a-c515664904f7",
150
+ "rule_name": "require_error_handling",
151
+ "rule_type": "PATTERN_REQUIRED",
152
+ "value": {
153
+ "context": "async functions",
154
+ "pattern": "try.*catch|.catch\\("
155
+ },
156
+ "severity": "warning",
157
+ "description": "All async operations must have error handling.",
158
+ "source": "global",
159
+ "is_enabled": true
160
+ }
161
+ ],
162
+ "settings": {
163
+ "lmax": 400,
164
+ "lmax_warning": 350
165
+ }
166
+ }
package/dist/index.cjs CHANGED
@@ -1752,9 +1752,67 @@ var require_dist2 = __commonJS({
1752
1752
  }
1753
1753
  });
1754
1754
 
1755
+ // package.json
1756
+ var require_package = __commonJS({
1757
+ "package.json"(exports2, module2) {
1758
+ module2.exports = {
1759
+ name: "@rigstate/cli",
1760
+ version: "0.7.20",
1761
+ description: "Rigstate CLI - Code audit, sync and supervision tool",
1762
+ type: "module",
1763
+ main: "./dist/index.js",
1764
+ bin: {
1765
+ rigstate: "dist/index.js"
1766
+ },
1767
+ scripts: {
1768
+ dev: "tsup --watch",
1769
+ build: "tsup",
1770
+ lint: "tsc --noEmit",
1771
+ start: "node dist/index.js",
1772
+ test: "node dist/index.js --help"
1773
+ },
1774
+ dependencies: {
1775
+ "@rigstate/rules-engine": "*",
1776
+ "@rigstate/shared": "*",
1777
+ uuid: "^9.0.1",
1778
+ "@types/diff": "^7.0.2",
1779
+ "@types/inquirer": "^9.0.9",
1780
+ axios: "^1.6.5",
1781
+ chalk: "^5.3.0",
1782
+ chokidar: "^3.6.0",
1783
+ commander: "^12.0.0",
1784
+ conf: "^12.0.0",
1785
+ diff: "^4.0.2",
1786
+ dotenv: "^16.4.1",
1787
+ glob: "^10.3.10",
1788
+ inquirer: "^9.3.8",
1789
+ ora: "^8.0.1"
1790
+ },
1791
+ devDependencies: {
1792
+ "@types/node": "^20.11.5",
1793
+ "@types/uuid": "^10.0.0",
1794
+ tsup: "^8.0.1",
1795
+ typescript: "^5.3.3"
1796
+ },
1797
+ engines: {
1798
+ node: ">=18.0.0"
1799
+ },
1800
+ keywords: [
1801
+ "rigstate",
1802
+ "cli",
1803
+ "audit",
1804
+ "security",
1805
+ "code-quality",
1806
+ "supervisor"
1807
+ ],
1808
+ author: "Rigstate",
1809
+ license: "MIT"
1810
+ };
1811
+ }
1812
+ });
1813
+
1755
1814
  // src/index.ts
1756
1815
  init_cjs_shims();
1757
- var import_module = require("module");
1758
1816
  var import_commander23 = require("commander");
1759
1817
  var import_chalk33 = __toESM(require("chalk"), 1);
1760
1818
 
@@ -3209,34 +3267,60 @@ function createFileWatcher(watchPath) {
3209
3267
  emitter.start = () => {
3210
3268
  const absolutePath = import_path15.default.resolve(process.cwd(), watchPath);
3211
3269
  watcher = chokidar.watch(absolutePath, {
3212
- ignored: [
3213
- "**/node_modules/**",
3214
- "**/.git/**",
3215
- "**/.next/**",
3216
- "**/.turbo/**",
3217
- "**/dist/**",
3218
- "**/build/**",
3219
- "**/.rigstate/**",
3220
- "**/coverage/**",
3221
- "**/.DS_Store",
3222
- "**/tmp/**",
3223
- "**/temp/**",
3224
- "**/vendor/**",
3225
- "**/.cache/**",
3226
- "**/public/**"
3227
- ],
3270
+ ignored: (pathStr) => {
3271
+ const relativePath = import_path15.default.relative(process.cwd(), pathStr);
3272
+ const segments = relativePath.split(import_path15.default.sep);
3273
+ const ignoreDirs = [
3274
+ "node_modules",
3275
+ ".git",
3276
+ ".next",
3277
+ ".turbo",
3278
+ "dist",
3279
+ "build",
3280
+ ".rigstate",
3281
+ "coverage",
3282
+ "tmp",
3283
+ "temp",
3284
+ "vendor",
3285
+ ".cache",
3286
+ "public",
3287
+ "artifacts",
3288
+ "out",
3289
+ ".vercel",
3290
+ ".npm",
3291
+ ".agent",
3292
+ ".cursor",
3293
+ ".npm-cache",
3294
+ "backups",
3295
+ "docs",
3296
+ "tests",
3297
+ "tools",
3298
+ "scripts",
3299
+ "supabase"
3300
+ ];
3301
+ if (segments.some((segment) => ignoreDirs.includes(segment))) {
3302
+ return true;
3303
+ }
3304
+ const isFile = !!import_path15.default.extname(pathStr);
3305
+ if (isFile && !isCodeFile3(pathStr)) {
3306
+ return true;
3307
+ }
3308
+ return false;
3309
+ },
3228
3310
  persistent: true,
3229
3311
  ignoreInitial: true,
3230
3312
  ignorePermissionErrors: true,
3231
- // Don't crash on EPERM
3232
- depth: 20,
3313
+ depth: 5,
3314
+ // Strongly reduced for major monorepos
3233
3315
  awaitWriteFinish: {
3234
- stabilityThreshold: 300,
3235
- pollInterval: 100
3316
+ stabilityThreshold: 500,
3317
+ // Increased for stability
3318
+ pollInterval: 200
3236
3319
  },
3237
3320
  usePolling: false,
3321
+ followSymlinks: false,
3322
+ // Prevent symlink loops and extra handles
3238
3323
  atomic: true
3239
- // Handle atomic writes (like vim/saving) better
3240
3324
  });
3241
3325
  watcher.on("change", (filePath) => {
3242
3326
  if (isCodeFile3(filePath)) {
@@ -3916,10 +4000,20 @@ function createDaemonCommand() {
3916
4000
  }
3917
4001
  const spinner = (0, import_ora8.default)();
3918
4002
  try {
3919
- if (await isRunning()) {
3920
- console.log(import_chalk19.default.yellow("\u26A0 Another daemon instance may be running."));
3921
- console.log(import_chalk19.default.dim(` Check ${PID_FILE} or run "rigstate daemon status"`));
3922
- console.log(import_chalk19.default.dim(" Use Ctrl+C to stop the running daemon first.\n"));
4003
+ const pidPath = import_path19.default.join(process.cwd(), PID_FILE);
4004
+ try {
4005
+ const content = await import_promises17.default.readFile(pidPath, "utf-8");
4006
+ const pid = parseInt(content.trim(), 10);
4007
+ try {
4008
+ process.kill(pid, 0);
4009
+ console.log(import_chalk19.default.yellow("\u26A0 Another daemon instance is active (PID " + pid + ")."));
4010
+ console.log(import_chalk19.default.dim(` Run "rigstate daemon status" for details or Ctrl+C to stop.
4011
+ `));
4012
+ } catch {
4013
+ await import_promises17.default.unlink(pidPath).catch(() => {
4014
+ });
4015
+ }
4016
+ } catch {
3923
4017
  }
3924
4018
  spinner.start("Initializing Guardian Daemon...");
3925
4019
  const daemonInstance = await createDaemon({
@@ -9883,8 +9977,7 @@ async function checkVersion() {
9883
9977
 
9884
9978
  // src/index.ts
9885
9979
  var import_dotenv = __toESM(require("dotenv"), 1);
9886
- var require2 = (0, import_module.createRequire)(importMetaUrl);
9887
- var pkg = require2("../package.json");
9980
+ var pkg = require_package();
9888
9981
  import_dotenv.default.config();
9889
9982
  var program = new import_commander23.Command();
9890
9983
  program.name("rigstate").description("CLI for Rigstate - The AI-Native Dev Studio").version(pkg.version);