@mmnto/cli 1.10.2 → 1.12.0
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/dist/assets/baseline-nodejs-security.d.ts +13 -0
- package/dist/assets/baseline-nodejs-security.d.ts.map +1 -0
- package/dist/assets/baseline-nodejs-security.js +117 -0
- package/dist/assets/baseline-nodejs-security.js.map +1 -0
- package/dist/assets/baseline-shell-posix.d.ts +11 -0
- package/dist/assets/baseline-shell-posix.d.ts.map +1 -0
- package/dist/assets/baseline-shell-posix.js +125 -0
- package/dist/assets/baseline-shell-posix.js.map +1 -0
- package/dist/assets/baseline-typescript-new.d.ts +10 -0
- package/dist/assets/baseline-typescript-new.d.ts.map +1 -0
- package/dist/assets/baseline-typescript-new.js +145 -0
- package/dist/assets/baseline-typescript-new.js.map +1 -0
- package/dist/assets/compiled-baseline.d.ts +3 -0
- package/dist/assets/compiled-baseline.d.ts.map +1 -1
- package/dist/assets/compiled-baseline.js +4 -0
- package/dist/assets/compiled-baseline.js.map +1 -1
- package/dist/assets/compiled-baseline.test.js +25 -1
- package/dist/assets/compiled-baseline.test.js.map +1 -1
- package/dist/commands/init-detect.d.ts.map +1 -1
- package/dist/commands/init-detect.js +12 -1
- package/dist/commands/init-detect.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +22 -6
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/run-compiled-rules.d.ts.map +1 -1
- package/dist/commands/run-compiled-rules.js +15 -1
- package/dist/commands/run-compiled-rules.js.map +1 -1
- package/dist/commands/run-compiled-rules.test.js +65 -1
- package/dist/commands/run-compiled-rules.test.js.map +1 -1
- package/dist/utils.test.js +1 -1
- package/dist/utils.test.js.map +1 -1
- package/package.json +5 -3
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node.js security baseline rules — compiled rules for common
|
|
3
|
+
* security pitfalls in the Node.js ecosystem.
|
|
4
|
+
*
|
|
5
|
+
* These rules are ready for direct inclusion in compiled-rules.json
|
|
6
|
+
* and enforce grep-level security checks without requiring an LLM.
|
|
7
|
+
*
|
|
8
|
+
* @see Proposal 210 Phase 1 (proactive language packs)
|
|
9
|
+
* @see #1152 (proactive language packs ticket)
|
|
10
|
+
*/
|
|
11
|
+
import type { CompiledRule } from '@mmnto/totem';
|
|
12
|
+
export declare const COMPILED_NODEJS_BASELINE: CompiledRule[];
|
|
13
|
+
//# sourceMappingURL=baseline-nodejs-security.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseline-nodejs-security.d.ts","sourceRoot":"","sources":["../../src/assets/baseline-nodejs-security.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,eAAO,MAAM,wBAAwB,EAAE,YAAY,EAwHlD,CAAC"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node.js security baseline rules — compiled rules for common
|
|
3
|
+
* security pitfalls in the Node.js ecosystem.
|
|
4
|
+
*
|
|
5
|
+
* These rules are ready for direct inclusion in compiled-rules.json
|
|
6
|
+
* and enforce grep-level security checks without requiring an LLM.
|
|
7
|
+
*
|
|
8
|
+
* @see Proposal 210 Phase 1 (proactive language packs)
|
|
9
|
+
* @see #1152 (proactive language packs ticket)
|
|
10
|
+
*/
|
|
11
|
+
export const COMPILED_NODEJS_BASELINE = [
|
|
12
|
+
// ─── 1. Shell injection via exec() ──────────────────
|
|
13
|
+
{
|
|
14
|
+
lessonHash: '976151615deaa19a',
|
|
15
|
+
lessonHeading: 'child_process.exec() enables shell injection',
|
|
16
|
+
pattern: String.raw `\bexecSync?\s*\(`,
|
|
17
|
+
message: 'Avoid child_process.exec() — it spawns a shell and is vulnerable to command injection. Use execFile() or spawn() without shell:true instead.',
|
|
18
|
+
engine: 'regex',
|
|
19
|
+
severity: 'warning',
|
|
20
|
+
category: 'security',
|
|
21
|
+
fileGlobs: ['**/*.ts', '**/*.js', '!**/*.test.*', '!**/*.spec.*', '!**/scripts/**'],
|
|
22
|
+
compiledAt: '2026-04-04T00:00:00.000Z',
|
|
23
|
+
createdAt: '2026-04-04T00:00:00.000Z',
|
|
24
|
+
},
|
|
25
|
+
// ─── 2. Shell injection via spawn() with shell:true ─
|
|
26
|
+
{
|
|
27
|
+
lessonHash: 'f8d586d04e81bd81',
|
|
28
|
+
lessonHeading: 'spawn() with shell:true enables command injection',
|
|
29
|
+
pattern: String.raw `spawn(?:Sync)?\s*\([^)]*\{[^}]*shell\s*:\s*true`,
|
|
30
|
+
message: 'Avoid spawn() with shell:true — it enables command injection. Pass arguments as an array without a shell.',
|
|
31
|
+
engine: 'regex',
|
|
32
|
+
severity: 'error',
|
|
33
|
+
category: 'security',
|
|
34
|
+
fileGlobs: ['**/*.ts', '**/*.js', '!**/*.test.*'],
|
|
35
|
+
compiledAt: '2026-04-04T00:00:00.000Z',
|
|
36
|
+
createdAt: '2026-04-04T00:00:00.000Z',
|
|
37
|
+
},
|
|
38
|
+
// ─── 3. Insecure randomness ─────────────────────────
|
|
39
|
+
{
|
|
40
|
+
lessonHash: '5b86c1c96e1d7cec',
|
|
41
|
+
lessonHeading: 'Math.random() is not cryptographically secure',
|
|
42
|
+
pattern: String.raw `\bMath\.random\s*\(`,
|
|
43
|
+
message: 'Math.random() is not cryptographically secure. Use crypto.randomBytes(), crypto.randomUUID(), or crypto.getRandomValues() for security-sensitive operations.',
|
|
44
|
+
engine: 'regex',
|
|
45
|
+
severity: 'warning',
|
|
46
|
+
category: 'security',
|
|
47
|
+
fileGlobs: ['**/*.ts', '**/*.js', '!**/*.test.*'],
|
|
48
|
+
compiledAt: '2026-04-04T00:00:00.000Z',
|
|
49
|
+
createdAt: '2026-04-04T00:00:00.000Z',
|
|
50
|
+
},
|
|
51
|
+
// ─── 4. Weak hash algorithms ────────────────────────
|
|
52
|
+
{
|
|
53
|
+
lessonHash: '78dc2e118185134f',
|
|
54
|
+
lessonHeading: 'MD5 and SHA1 are cryptographically broken',
|
|
55
|
+
pattern: String.raw `\bcreateHash\s*\(\s*['"](?:md5|sha1)['"]\s*\)`,
|
|
56
|
+
message: 'MD5 and SHA1 are cryptographically broken. Use SHA-256 or SHA-384 for integrity checks, and bcrypt/scrypt/argon2 for passwords.',
|
|
57
|
+
engine: 'regex',
|
|
58
|
+
severity: 'warning',
|
|
59
|
+
category: 'security',
|
|
60
|
+
fileGlobs: ['**/*.ts', '**/*.js'],
|
|
61
|
+
compiledAt: '2026-04-04T00:00:00.000Z',
|
|
62
|
+
createdAt: '2026-04-04T00:00:00.000Z',
|
|
63
|
+
},
|
|
64
|
+
// ─── 5. XSS via HTML injection ──────────────────────
|
|
65
|
+
{
|
|
66
|
+
lessonHash: '277c4b6fbea22433',
|
|
67
|
+
lessonHeading: 'innerHTML and dangerouslySetInnerHTML enable XSS',
|
|
68
|
+
pattern: String.raw `\b(?:innerHTML|dangerouslySetInnerHTML)\b`,
|
|
69
|
+
message: 'Direct HTML injection via innerHTML or dangerouslySetInnerHTML is an XSS vector. Use textContent, DOM APIs, or a sanitization library.',
|
|
70
|
+
engine: 'regex',
|
|
71
|
+
severity: 'error',
|
|
72
|
+
category: 'security',
|
|
73
|
+
fileGlobs: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx', '!**/*.test.*', '!**/*.spec.*'],
|
|
74
|
+
compiledAt: '2026-04-04T00:00:00.000Z',
|
|
75
|
+
createdAt: '2026-04-04T00:00:00.000Z',
|
|
76
|
+
},
|
|
77
|
+
// ─── 6. Hardcoded credentials ───────────────────────
|
|
78
|
+
{
|
|
79
|
+
lessonHash: '4a64a564963ff978',
|
|
80
|
+
lessonHeading: 'Hardcoded credentials in source code',
|
|
81
|
+
pattern: String.raw `(?:password|passwd)\s*[:=]\s*['"][^'"]{4,}['"]`,
|
|
82
|
+
message: 'Possible hardcoded password detected. Use environment variables, a secrets manager, or a .env file (gitignored) instead.',
|
|
83
|
+
engine: 'regex',
|
|
84
|
+
severity: 'error',
|
|
85
|
+
category: 'security',
|
|
86
|
+
fileGlobs: ['**/*.ts', '**/*.js', '!**/*.test.*', '!**/*.spec.*', '!**/*.example.*'],
|
|
87
|
+
compiledAt: '2026-04-04T00:00:00.000Z',
|
|
88
|
+
createdAt: '2026-04-04T00:00:00.000Z',
|
|
89
|
+
},
|
|
90
|
+
// ─── 7. Path traversal via user input ───────────────
|
|
91
|
+
{
|
|
92
|
+
lessonHash: '6a00515ef39ee4fa',
|
|
93
|
+
lessonHeading: 'path.join() with user input enables directory traversal',
|
|
94
|
+
pattern: String.raw `path\.join\s*\([^)]*(?:req\.|params\.|query\.|body\.)`,
|
|
95
|
+
message: 'Validate and sanitize user input before passing to path.join(). Unvalidated paths enable directory traversal attacks. Normalize the result and verify it stays within the expected base directory.',
|
|
96
|
+
engine: 'regex',
|
|
97
|
+
severity: 'warning',
|
|
98
|
+
category: 'security',
|
|
99
|
+
fileGlobs: ['**/*.ts', '**/*.js', '!**/*.test.*'],
|
|
100
|
+
compiledAt: '2026-04-04T00:00:00.000Z',
|
|
101
|
+
createdAt: '2026-04-04T00:00:00.000Z',
|
|
102
|
+
},
|
|
103
|
+
// ─── 8. Disabled TLS verification ──────────────────
|
|
104
|
+
{
|
|
105
|
+
lessonHash: '2bb718e79e91b11a',
|
|
106
|
+
lessonHeading: 'Disabled TLS certificate verification',
|
|
107
|
+
pattern: String.raw `NODE_TLS_REJECT_UNAUTHORIZED\s*=\s*['"]?0|rejectUnauthorized\s*:\s*false`,
|
|
108
|
+
message: 'Never disable TLS certificate verification in production. This enables man-in-the-middle attacks.',
|
|
109
|
+
engine: 'regex',
|
|
110
|
+
severity: 'error',
|
|
111
|
+
category: 'security',
|
|
112
|
+
fileGlobs: ['**/*.ts', '**/*.js', '!**/*.test.*'],
|
|
113
|
+
compiledAt: '2026-04-04T00:00:00.000Z',
|
|
114
|
+
createdAt: '2026-04-04T00:00:00.000Z',
|
|
115
|
+
},
|
|
116
|
+
];
|
|
117
|
+
//# sourceMappingURL=baseline-nodejs-security.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseline-nodejs-security.js","sourceRoot":"","sources":["../../src/assets/baseline-nodejs-security.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shell/POSIX baseline rules — curated from ShellCheck and the POSIX spec.
|
|
3
|
+
* Protects shell scripts (including totem's own git hooks) from bash-only
|
|
4
|
+
* constructs that break on dash, ash, or other POSIX-only shells.
|
|
5
|
+
*
|
|
6
|
+
* @see Proposal 210 Phase 1 (proactive language packs)
|
|
7
|
+
* @see #1152 (proactive language packs ticket)
|
|
8
|
+
*/
|
|
9
|
+
import type { CompiledRule } from '@mmnto/totem';
|
|
10
|
+
export declare const COMPILED_SHELL_BASELINE: CompiledRule[];
|
|
11
|
+
//# sourceMappingURL=baseline-shell-posix.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseline-shell-posix.d.ts","sourceRoot":"","sources":["../../src/assets/baseline-shell-posix.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,eAAO,MAAM,uBAAuB,EAAE,YAAY,EAsIjD,CAAC"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
export const COMPILED_SHELL_BASELINE = [
|
|
2
|
+
// ─── Errors (block CI) ─────────────────────────────
|
|
3
|
+
{
|
|
4
|
+
lessonHash: '39e1fa25de7eeb0e',
|
|
5
|
+
lessonHeading: '[[ ]] bashism in sh scripts',
|
|
6
|
+
pattern: '\\[\\[',
|
|
7
|
+
message: 'Double brackets [[ ]] are a bash extension. Use single brackets [ ] for POSIX sh compatibility.',
|
|
8
|
+
engine: 'regex',
|
|
9
|
+
compiledAt: '2026-04-04T00:00:00.000Z',
|
|
10
|
+
createdAt: '2026-04-04T00:00:00.000Z',
|
|
11
|
+
fileGlobs: ['**/*.sh', '**/.husky/*'],
|
|
12
|
+
severity: 'error',
|
|
13
|
+
category: 'architecture',
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
lessonHash: '0bfe91d15f8f0d30',
|
|
17
|
+
lessonHeading: 'Array syntax in sh scripts',
|
|
18
|
+
pattern: '\\w+=\\s*\\(',
|
|
19
|
+
message: 'Arrays are a bash extension and not available in POSIX sh. Use space-separated strings or positional parameters instead.',
|
|
20
|
+
engine: 'regex',
|
|
21
|
+
compiledAt: '2026-04-04T00:00:00.000Z',
|
|
22
|
+
createdAt: '2026-04-04T00:00:00.000Z',
|
|
23
|
+
fileGlobs: ['**/*.sh', '**/.husky/*'],
|
|
24
|
+
severity: 'error',
|
|
25
|
+
category: 'architecture',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
lessonHash: '6d5da266b8ef7814',
|
|
29
|
+
lessonHeading: 'Process substitution <(...) in sh',
|
|
30
|
+
pattern: '<\\s*\\(',
|
|
31
|
+
message: 'Process substitution <() is a bash extension. Use temporary files or pipes for POSIX sh compatibility.',
|
|
32
|
+
engine: 'regex',
|
|
33
|
+
compiledAt: '2026-04-04T00:00:00.000Z',
|
|
34
|
+
createdAt: '2026-04-04T00:00:00.000Z',
|
|
35
|
+
fileGlobs: ['**/*.sh', '**/.husky/*'],
|
|
36
|
+
severity: 'error',
|
|
37
|
+
category: 'architecture',
|
|
38
|
+
},
|
|
39
|
+
// ─── Warnings (report but don't fail) ──────────────
|
|
40
|
+
{
|
|
41
|
+
lessonHash: '85527afcf2757832',
|
|
42
|
+
lessonHeading: 'echo -n / echo -e non-POSIX flags',
|
|
43
|
+
pattern: '\\becho\\s+-[ne]+\\b',
|
|
44
|
+
message: 'echo -n and echo -e are not portable across shells. Use printf instead for POSIX compliance.',
|
|
45
|
+
engine: 'regex',
|
|
46
|
+
compiledAt: '2026-04-04T00:00:00.000Z',
|
|
47
|
+
createdAt: '2026-04-04T00:00:00.000Z',
|
|
48
|
+
fileGlobs: ['**/*.sh', '**/.husky/*'],
|
|
49
|
+
severity: 'warning',
|
|
50
|
+
category: 'style',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
lessonHash: '260c87a32ba95d9a',
|
|
54
|
+
lessonHeading: '== in test expressions (POSIX uses =)',
|
|
55
|
+
pattern: '\\[\\s+[^\\]]*\\s+==\\s+',
|
|
56
|
+
message: 'Use = instead of == in test expressions. == is a bash extension; POSIX only supports single =.',
|
|
57
|
+
engine: 'regex',
|
|
58
|
+
compiledAt: '2026-04-04T00:00:00.000Z',
|
|
59
|
+
createdAt: '2026-04-04T00:00:00.000Z',
|
|
60
|
+
fileGlobs: ['**/*.sh', '**/.husky/*'],
|
|
61
|
+
severity: 'warning',
|
|
62
|
+
category: 'style',
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
lessonHash: 'f1a3640aa1cf826b',
|
|
66
|
+
lessonHeading: 'function keyword (POSIX uses bare name)',
|
|
67
|
+
pattern: '\\bfunction\\s+\\w+',
|
|
68
|
+
message: "The 'function' keyword is a bash extension. Use 'name() {' syntax for POSIX sh compatibility.",
|
|
69
|
+
engine: 'regex',
|
|
70
|
+
compiledAt: '2026-04-04T00:00:00.000Z',
|
|
71
|
+
createdAt: '2026-04-04T00:00:00.000Z',
|
|
72
|
+
fileGlobs: ['**/*.sh', '**/.husky/*'],
|
|
73
|
+
severity: 'warning',
|
|
74
|
+
category: 'style',
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
lessonHash: 'ab7278e18fe5b19b',
|
|
78
|
+
lessonHeading: 'source instead of . (dot)',
|
|
79
|
+
pattern: '\\bsource\\s+',
|
|
80
|
+
message: "Use '. file' instead of 'source file'. The source command is a bash extension; the dot command is POSIX.",
|
|
81
|
+
engine: 'regex',
|
|
82
|
+
compiledAt: '2026-04-04T00:00:00.000Z',
|
|
83
|
+
createdAt: '2026-04-04T00:00:00.000Z',
|
|
84
|
+
fileGlobs: ['**/*.sh', '**/.husky/*'],
|
|
85
|
+
severity: 'warning',
|
|
86
|
+
category: 'style',
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
lessonHash: '4325fe7f9e1c19cb',
|
|
90
|
+
lessonHeading: 'readlink -f (not available on macOS)',
|
|
91
|
+
pattern: '\\breadlink\\s+-f\\b',
|
|
92
|
+
message: 'readlink -f is not available on macOS. Use a portable alternative: dirname/basename combination, or install coreutils.',
|
|
93
|
+
engine: 'regex',
|
|
94
|
+
compiledAt: '2026-04-04T00:00:00.000Z',
|
|
95
|
+
createdAt: '2026-04-04T00:00:00.000Z',
|
|
96
|
+
fileGlobs: ['**/*.sh', '**/.husky/*'],
|
|
97
|
+
severity: 'warning',
|
|
98
|
+
category: 'architecture',
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
lessonHash: '2370e5e71fb895d2',
|
|
102
|
+
lessonHeading: 'Unquoted variable expansion in conditions',
|
|
103
|
+
pattern: '\\[[^\\]]*\\s+\\$\\{?\\w+\\}?\\s+',
|
|
104
|
+
message: 'Always quote variable expansions in test expressions: ["$var" = value]. Unquoted variables cause word splitting and glob expansion bugs.',
|
|
105
|
+
engine: 'regex',
|
|
106
|
+
compiledAt: '2026-04-04T00:00:00.000Z',
|
|
107
|
+
createdAt: '2026-04-04T00:00:00.000Z',
|
|
108
|
+
fileGlobs: ['**/*.sh', '**/.husky/*'],
|
|
109
|
+
severity: 'warning',
|
|
110
|
+
category: 'style',
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
lessonHash: 'b3e70aaa8a28831d',
|
|
114
|
+
lessonHeading: 'let arithmetic command (bash-only)',
|
|
115
|
+
pattern: '\\blet\\s+\\w+',
|
|
116
|
+
message: "The 'let' command is a bash extension. Use $(( )) arithmetic expansion for POSIX sh compatibility.",
|
|
117
|
+
engine: 'regex',
|
|
118
|
+
compiledAt: '2026-04-04T00:00:00.000Z',
|
|
119
|
+
createdAt: '2026-04-04T00:00:00.000Z',
|
|
120
|
+
fileGlobs: ['**/*.sh', '**/.husky/*'],
|
|
121
|
+
severity: 'warning',
|
|
122
|
+
category: 'style',
|
|
123
|
+
},
|
|
124
|
+
];
|
|
125
|
+
//# sourceMappingURL=baseline-shell-posix.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseline-shell-posix.js","sourceRoot":"","sources":["../../src/assets/baseline-shell-posix.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript baseline rules — Proposal 210 Phase 1.
|
|
3
|
+
* Curated lint rules for TypeScript/JavaScript ecosystems.
|
|
4
|
+
*
|
|
5
|
+
* @see Proposal 210 (proactive language packs)
|
|
6
|
+
* @see #1152 (proactive language packs milestone ticket)
|
|
7
|
+
*/
|
|
8
|
+
import type { CompiledRule } from '@mmnto/totem';
|
|
9
|
+
export declare const NEW_TYPESCRIPT_RULES: CompiledRule[];
|
|
10
|
+
//# sourceMappingURL=baseline-typescript-new.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseline-typescript-new.d.ts","sourceRoot":"","sources":["../../src/assets/baseline-typescript-new.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,eAAO,MAAM,oBAAoB,EAAE,YAAY,EAyJ9C,CAAC"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TypeScript baseline rules — Proposal 210 Phase 1.
|
|
3
|
+
* Curated lint rules for TypeScript/JavaScript ecosystems.
|
|
4
|
+
*
|
|
5
|
+
* @see Proposal 210 (proactive language packs)
|
|
6
|
+
* @see #1152 (proactive language packs milestone ticket)
|
|
7
|
+
*/
|
|
8
|
+
export const NEW_TYPESCRIPT_RULES = [
|
|
9
|
+
// ─── 1. @ts-ignore without justification ─────────────
|
|
10
|
+
{
|
|
11
|
+
lessonHash: '4e34363c19762ef4',
|
|
12
|
+
lessonHeading: '@ts-ignore without justification',
|
|
13
|
+
pattern: '@ts-ignore(?!\\s)|@ts-ignore\\s*$',
|
|
14
|
+
message: 'Use @ts-expect-error with a description instead of @ts-ignore. @ts-expect-error will fail when the error is fixed, preventing stale suppressions.',
|
|
15
|
+
engine: 'regex',
|
|
16
|
+
compiledAt: '2026-04-04T00:00:00.000Z',
|
|
17
|
+
createdAt: '2026-04-04T00:00:00.000Z',
|
|
18
|
+
fileGlobs: ['**/*.ts', '**/*.tsx', '!**/*.test.*', '!**/*.spec.*'],
|
|
19
|
+
severity: 'warning',
|
|
20
|
+
category: 'style',
|
|
21
|
+
},
|
|
22
|
+
// ─── 2. Bare `any` type annotation ───────────────────
|
|
23
|
+
{
|
|
24
|
+
lessonHash: '3ebe7f36159a80c4',
|
|
25
|
+
lessonHeading: 'Bare any type annotation',
|
|
26
|
+
pattern: ':\\s*any\\b',
|
|
27
|
+
message: 'Avoid using `any`. Use `unknown` for truly unknown types, or define a proper interface.',
|
|
28
|
+
engine: 'regex',
|
|
29
|
+
compiledAt: '2026-04-04T00:00:00.000Z',
|
|
30
|
+
createdAt: '2026-04-04T00:00:00.000Z',
|
|
31
|
+
fileGlobs: ['**/*.ts', '**/*.tsx', '!**/*.test.*', '!**/*.spec.*'],
|
|
32
|
+
severity: 'warning',
|
|
33
|
+
category: 'style',
|
|
34
|
+
},
|
|
35
|
+
// ─── 3. Non-null assertion operator ──────────────────
|
|
36
|
+
{
|
|
37
|
+
lessonHash: 'bdbc80c10f6253c1',
|
|
38
|
+
lessonHeading: 'Non-null assertion operator',
|
|
39
|
+
pattern: '\\w+!(?![\\w$])',
|
|
40
|
+
message: 'Avoid non-null assertions (`!`). Use optional chaining (`?.`) or proper null checks.',
|
|
41
|
+
engine: 'regex',
|
|
42
|
+
compiledAt: '2026-04-04T00:00:00.000Z',
|
|
43
|
+
createdAt: '2026-04-04T00:00:00.000Z',
|
|
44
|
+
fileGlobs: ['**/*.ts', '**/*.tsx', '!**/*.test.*', '!**/*.spec.*'],
|
|
45
|
+
severity: 'warning',
|
|
46
|
+
category: 'style',
|
|
47
|
+
},
|
|
48
|
+
// ─── 4. `var` declarations ───────────────────────────
|
|
49
|
+
{
|
|
50
|
+
lessonHash: '058618b27bee5d3f',
|
|
51
|
+
lessonHeading: 'var declarations',
|
|
52
|
+
pattern: '\\bvar\\s+\\w+',
|
|
53
|
+
message: 'Use `const` or `let` instead of `var`. `var` has function-level scoping which causes subtle bugs.',
|
|
54
|
+
engine: 'regex',
|
|
55
|
+
compiledAt: '2026-04-04T00:00:00.000Z',
|
|
56
|
+
createdAt: '2026-04-04T00:00:00.000Z',
|
|
57
|
+
fileGlobs: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx', '!**/*.test.*', '!**/*.spec.*'],
|
|
58
|
+
severity: 'warning',
|
|
59
|
+
category: 'style',
|
|
60
|
+
},
|
|
61
|
+
// ─── 5. `console.log` in production code ─────────────
|
|
62
|
+
{
|
|
63
|
+
lessonHash: '890c30f316b3bfff',
|
|
64
|
+
lessonHeading: 'console.log in production code',
|
|
65
|
+
pattern: '\\bconsole\\.(log|debug|info)\\s*\\(',
|
|
66
|
+
message: 'Remove console.log/debug/info from production code. Use a structured logger instead.',
|
|
67
|
+
engine: 'regex',
|
|
68
|
+
compiledAt: '2026-04-04T00:00:00.000Z',
|
|
69
|
+
createdAt: '2026-04-04T00:00:00.000Z',
|
|
70
|
+
fileGlobs: [
|
|
71
|
+
'**/src/**/*.ts',
|
|
72
|
+
'**/src/**/*.tsx',
|
|
73
|
+
'**/src/**/*.js',
|
|
74
|
+
'**/src/**/*.jsx',
|
|
75
|
+
'!**/*.test.*',
|
|
76
|
+
'!**/*.spec.*',
|
|
77
|
+
],
|
|
78
|
+
severity: 'warning',
|
|
79
|
+
category: 'style',
|
|
80
|
+
},
|
|
81
|
+
// Empty catch blocks: covered by existing COMPILED_BASELINE_RULES (guardrail-empty-catch)
|
|
82
|
+
// ─── 6. `eval()` usage ──────────────────────────────
|
|
83
|
+
{
|
|
84
|
+
lessonHash: '103db6b09cdbd21a',
|
|
85
|
+
lessonHeading: 'eval() usage',
|
|
86
|
+
pattern: '\\beval\\s*\\(',
|
|
87
|
+
message: 'Never use eval(). It executes arbitrary code and is a critical security vulnerability. Use JSON.parse() for data or dedicated APIs for dynamic behavior.',
|
|
88
|
+
engine: 'regex',
|
|
89
|
+
compiledAt: '2026-04-04T00:00:00.000Z',
|
|
90
|
+
createdAt: '2026-04-04T00:00:00.000Z',
|
|
91
|
+
fileGlobs: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx'],
|
|
92
|
+
severity: 'error',
|
|
93
|
+
category: 'security',
|
|
94
|
+
},
|
|
95
|
+
// ─── 8. `JSON.parse` error handling ─────────────────
|
|
96
|
+
{
|
|
97
|
+
lessonHash: '93f0fb40147c3307',
|
|
98
|
+
lessonHeading: 'Ensure JSON.parse is wrapped in error handling',
|
|
99
|
+
pattern: '\\bJSON\\.parse\\s*\\(',
|
|
100
|
+
message: 'Wrap JSON.parse() in try-catch at system boundaries. Unhandled parse errors crash the process.',
|
|
101
|
+
engine: 'regex',
|
|
102
|
+
compiledAt: '2026-04-04T00:00:00.000Z',
|
|
103
|
+
createdAt: '2026-04-04T00:00:00.000Z',
|
|
104
|
+
fileGlobs: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx', '!**/*.test.*', '!**/*.spec.*'],
|
|
105
|
+
severity: 'warning',
|
|
106
|
+
category: 'style',
|
|
107
|
+
},
|
|
108
|
+
// ─── 9. `process.exit()` in library code ────────────
|
|
109
|
+
{
|
|
110
|
+
lessonHash: '1e37fb53ec20622d',
|
|
111
|
+
lessonHeading: 'process.exit() in library code',
|
|
112
|
+
pattern: '\\bprocess\\.exit\\s*\\(',
|
|
113
|
+
message: 'Avoid process.exit() in library code. Throw an error instead and let the CLI entry point decide how to exit.',
|
|
114
|
+
engine: 'regex',
|
|
115
|
+
compiledAt: '2026-04-04T00:00:00.000Z',
|
|
116
|
+
createdAt: '2026-04-04T00:00:00.000Z',
|
|
117
|
+
fileGlobs: [
|
|
118
|
+
'**/src/**/*.ts',
|
|
119
|
+
'**/src/**/*.tsx',
|
|
120
|
+
'**/src/**/*.js',
|
|
121
|
+
'**/src/**/*.jsx',
|
|
122
|
+
'!**/cli/**',
|
|
123
|
+
'!**/commands/**',
|
|
124
|
+
'!**/bin/**',
|
|
125
|
+
'!**/*.test.*',
|
|
126
|
+
'!**/*.spec.*',
|
|
127
|
+
],
|
|
128
|
+
severity: 'warning',
|
|
129
|
+
category: 'architecture',
|
|
130
|
+
},
|
|
131
|
+
// ─── 10. Hardcoded API key patterns ─────────────────
|
|
132
|
+
{
|
|
133
|
+
lessonHash: '052527fee28122db',
|
|
134
|
+
lessonHeading: 'Hardcoded API key patterns',
|
|
135
|
+
pattern: '(?:api[_-]?key|apiKey|secret|token|password|passwd)\\s*[:=]\\s*[\'"][A-Za-z0-9+/=_-]{16,}[\'"]',
|
|
136
|
+
message: 'Possible hardcoded credential detected. Use environment variables or a secrets manager instead.',
|
|
137
|
+
engine: 'regex',
|
|
138
|
+
compiledAt: '2026-04-04T00:00:00.000Z',
|
|
139
|
+
createdAt: '2026-04-04T00:00:00.000Z',
|
|
140
|
+
fileGlobs: ['**/*.ts', '**/*.tsx', '**/*.js', '**/*.jsx', '!**/*.test.*', '!**/*.spec.*'],
|
|
141
|
+
severity: 'error',
|
|
142
|
+
category: 'security',
|
|
143
|
+
},
|
|
144
|
+
];
|
|
145
|
+
//# sourceMappingURL=baseline-typescript-new.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baseline-typescript-new.js","sourceRoot":"","sources":["../../src/assets/baseline-typescript-new.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import type { CompiledRule } from '@mmnto/totem';
|
|
2
|
+
export { COMPILED_NODEJS_BASELINE } from './baseline-nodejs-security.js';
|
|
3
|
+
export { COMPILED_SHELL_BASELINE } from './baseline-shell-posix.js';
|
|
4
|
+
export { NEW_TYPESCRIPT_RULES } from './baseline-typescript-new.js';
|
|
2
5
|
export declare const COMPILED_BASELINE_RULES: CompiledRule[];
|
|
3
6
|
export declare const COMPILED_PYTHON_BASELINE: CompiledRule[];
|
|
4
7
|
export declare const COMPILED_RUST_BASELINE: CompiledRule[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiled-baseline.d.ts","sourceRoot":"","sources":["../../src/assets/compiled-baseline.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"compiled-baseline.d.ts","sourceRoot":"","sources":["../../src/assets/compiled-baseline.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAGjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,eAAO,MAAM,uBAAuB,EAAE,YAAY,EA0WjD,CAAC;AAIF,eAAO,MAAM,wBAAwB,EAAE,YAAY,EA2BlD,CAAC;AAIF,eAAO,MAAM,sBAAsB,EAAE,YAAY,EA2BhD,CAAC;AAIF,eAAO,MAAM,oBAAoB,EAAE,YAAY,EA0B9C,CAAC"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
// Re-export ecosystem packs
|
|
2
|
+
export { COMPILED_NODEJS_BASELINE } from './baseline-nodejs-security.js';
|
|
3
|
+
export { COMPILED_SHELL_BASELINE } from './baseline-shell-posix.js';
|
|
4
|
+
export { NEW_TYPESCRIPT_RULES } from './baseline-typescript-new.js';
|
|
1
5
|
export const COMPILED_BASELINE_RULES = [
|
|
2
6
|
{
|
|
3
7
|
lessonHash: 'ddaf220dedf132ef',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiled-baseline.js","sourceRoot":"","sources":["../../src/assets/compiled-baseline.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"compiled-baseline.js","sourceRoot":"","sources":["../../src/assets/compiled-baseline.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,13 @@ import * as fs from 'node:fs';
|
|
|
2
2
|
import * as path from 'node:path';
|
|
3
3
|
import { describe, expect, it } from 'vitest';
|
|
4
4
|
import { parseFixture, testRule } from '@mmnto/totem';
|
|
5
|
-
import { COMPILED_BASELINE_RULES, COMPILED_GO_BASELINE, COMPILED_PYTHON_BASELINE, COMPILED_RUST_BASELINE, } from './compiled-baseline.js';
|
|
5
|
+
import { COMPILED_BASELINE_RULES, COMPILED_GO_BASELINE, COMPILED_NODEJS_BASELINE, COMPILED_PYTHON_BASELINE, COMPILED_RUST_BASELINE, COMPILED_SHELL_BASELINE, NEW_TYPESCRIPT_RULES, } from './compiled-baseline.js';
|
|
6
6
|
// ─── Helpers ────────────────────────────────────────
|
|
7
7
|
const ALL_ARRAYS = [
|
|
8
8
|
{ name: 'COMPILED_BASELINE_RULES', rules: COMPILED_BASELINE_RULES },
|
|
9
|
+
{ name: 'NEW_TYPESCRIPT_RULES', rules: NEW_TYPESCRIPT_RULES },
|
|
10
|
+
{ name: 'COMPILED_NODEJS_BASELINE', rules: COMPILED_NODEJS_BASELINE },
|
|
11
|
+
{ name: 'COMPILED_SHELL_BASELINE', rules: COMPILED_SHELL_BASELINE },
|
|
9
12
|
{ name: 'COMPILED_PYTHON_BASELINE', rules: COMPILED_PYTHON_BASELINE },
|
|
10
13
|
{ name: 'COMPILED_RUST_BASELINE', rules: COMPILED_RUST_BASELINE },
|
|
11
14
|
{ name: 'COMPILED_GO_BASELINE', rules: COMPILED_GO_BASELINE },
|
|
@@ -52,9 +55,30 @@ describe('compiled-baseline ecosystem arrays', () => {
|
|
|
52
55
|
expect(positive.some((g) => g.includes('.go'))).toBe(true);
|
|
53
56
|
}
|
|
54
57
|
});
|
|
58
|
+
it('Shell rules use .sh or .husky file globs', () => {
|
|
59
|
+
for (const rule of COMPILED_SHELL_BASELINE) {
|
|
60
|
+
const globs = rule.fileGlobs ?? [];
|
|
61
|
+
const positive = globs.filter((g) => !g.startsWith('!'));
|
|
62
|
+
expect(positive.some((g) => g.includes('.sh') || g.includes('.husky'))).toBe(true);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
it('Node.js security rules have security category', () => {
|
|
66
|
+
for (const rule of COMPILED_NODEJS_BASELINE) {
|
|
67
|
+
expect(rule.category).toBe('security');
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
it('all regex patterns are valid', () => {
|
|
71
|
+
for (const rule of ALL_RULES) {
|
|
72
|
+
if (rule.engine === 'regex' && rule.pattern) {
|
|
73
|
+
expect(() => new RegExp(rule.pattern)).not.toThrow();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
});
|
|
55
77
|
});
|
|
56
78
|
describe('baseline fixture validation', () => {
|
|
57
79
|
const fixturesDir = path.resolve(__dirname, 'baseline-fixtures');
|
|
80
|
+
// Only ecosystem rules with matching fixture files are validated here.
|
|
81
|
+
// TS/Node.js/Shell rules are validated by the field + regex tests above.
|
|
58
82
|
const allEcosystemRules = [
|
|
59
83
|
...COMPILED_PYTHON_BASELINE,
|
|
60
84
|
...COMPILED_RUST_BASELINE,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiled-baseline.test.js","sourceRoot":"","sources":["../../src/assets/compiled-baseline.test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAG9C,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EACL,uBAAuB,EACvB,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"compiled-baseline.test.js","sourceRoot":"","sources":["../../src/assets/compiled-baseline.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-detect.d.ts","sourceRoot":"","sources":["../../src/commands/init-detect.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAOjD,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAInF;AAID,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AAClD,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC;AAEhE,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,qBAAqB,EAAE,YAAY,CAAC;IACpC,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,MAAM,MAAM,MAAM,GAAG,aAAa,GAAG,YAAY,GAAG,QAAQ,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;AAEpG,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IACpD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5C,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;CACjE;AAED,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEpE,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAeD,6FAA6F;AAC7F,wBAAgB,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAQzE;AAMD;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,UAAU,EA+BhC,CAAC;AAIF,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CA0C1D;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,EAAE,CAqBvD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAiB9D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"init-detect.d.ts","sourceRoot":"","sources":["../../src/commands/init-detect.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAOjD,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAInF;AAID,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AAClD,MAAM,MAAM,SAAS,GAAG,YAAY,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC;AAEhE,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,qBAAqB,EAAE,YAAY,CAAC;IACpC,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED,MAAM,MAAM,MAAM,GAAG,aAAa,GAAG,YAAY,GAAG,QAAQ,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;AAEpG,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IACpD,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5C,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC;CACjE;AAED,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEpE,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAeD,6FAA6F;AAC7F,wBAAgB,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAQzE;AAMD;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,UAAU,EA+BhC,CAAC;AAIF,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CA0C1D;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,EAAE,CAqBvD;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAiB9D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAmH3E;AAID,wBAAgB,YAAY,CAAC,QAAQ,EAAE,eAAe,GAAG,YAAY,EAAE,CAsEtE;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,CAK7D"}
|
|
@@ -257,7 +257,18 @@ export function detectOrchestrator(cwd) {
|
|
|
257
257
|
},`,
|
|
258
258
|
};
|
|
259
259
|
}
|
|
260
|
-
// 4.
|
|
260
|
+
// 4. Ollama running locally → use gemma4 (free, fast, air-gappable)
|
|
261
|
+
if (cliExists('ollama')) {
|
|
262
|
+
const config = { provider: 'ollama', defaultModel: 'gemma4' };
|
|
263
|
+
return {
|
|
264
|
+
config,
|
|
265
|
+
block: ` orchestrator: {
|
|
266
|
+
provider: 'ollama',
|
|
267
|
+
defaultModel: 'gemma4',
|
|
268
|
+
},`,
|
|
269
|
+
};
|
|
270
|
+
}
|
|
271
|
+
// 5. Nothing found → omit orchestrator (Lite/Standard tier)
|
|
261
272
|
return null;
|
|
262
273
|
}
|
|
263
274
|
// ─── Target builders ─────────────────────────────────────
|