@runhalo/engine 0.1.0 → 0.2.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/README.md ADDED
@@ -0,0 +1,58 @@
1
+ # @runhalo/engine
2
+
3
+ **Halo rule engine** — COPPA 2.0 risk detection via tree-sitter AST analysis.
4
+
5
+ [![npm](https://img.shields.io/npm/v/@runhalo/engine.svg)](https://www.npmjs.com/package/@runhalo/engine)
6
+ [![License: Apache 2.0](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://www.apache.org/licenses/LICENSE-2.0)
7
+
8
+ ## What it does
9
+
10
+ The engine scans source files for code patterns that may indicate COPPA 2.0 privacy risks in children's apps. It ships with **20 COPPA rules** and **5 ethical design rules**, powered by tree-sitter AST analysis and regex pattern matching.
11
+
12
+ ## Install
13
+
14
+ ```bash
15
+ npm install @runhalo/engine
16
+ ```
17
+
18
+ ## Usage
19
+
20
+ ```typescript
21
+ import { HaloEngine } from '@runhalo/engine';
22
+
23
+ const engine = new HaloEngine();
24
+
25
+ // Scan a single file
26
+ const results = engine.scanFile('src/auth/login.ts', sourceCode);
27
+
28
+ // Each result includes:
29
+ // - ruleId: 'coppa-auth-001'
30
+ // - severity: 'critical' | 'high' | 'medium' | 'low'
31
+ // - message: human-readable description
32
+ // - line / column / codeSnippet
33
+ // - fixSuggestion: recommended remediation
34
+ ```
35
+
36
+ ## Rules
37
+
38
+ 20 COPPA rules covering authentication, data collection, tracking, encryption, and consent — plus 5 ethical design rules for dark patterns like infinite scroll, streak pressure, and loot boxes.
39
+
40
+ Full rule reference: [github.com/runhalo/halo#rules](https://github.com/runhalo/halo#rules)
41
+
42
+ ## Supported Languages
43
+
44
+ TypeScript, JavaScript, TSX, JSX, Python, Swift, Java, Kotlin, HTML, Vue, Svelte, PHP, C++, C#, SQL
45
+
46
+ ## CLI
47
+
48
+ Most users should install the CLI instead:
49
+
50
+ ```bash
51
+ npx @runhalo/cli scan .
52
+ ```
53
+
54
+ See [@runhalo/cli](https://www.npmjs.com/package/@runhalo/cli) for the command-line scanner.
55
+
56
+ ## License
57
+
58
+ Apache 2.0 — [Mindful Media](https://mindfulmedia.org)
@@ -0,0 +1,99 @@
1
+ /**
2
+ * Halo Fix Engine
3
+ * Tier 1 auto-fix transforms for COPPA violations
4
+ *
5
+ * Sprint 5: 4 auto-fixable rules (line-targeted string transforms, no ts-morph)
6
+ * coppa-sec-006: HTTP → HTTPS (url-upgrade)
7
+ * coppa-sec-010: Remove weak passwords (remove-default)
8
+ * coppa-sec-015: innerHTML → textContent (sanitize-input) ⚠️ behavior change
9
+ * coppa-default-020: Public → private (set-default)
10
+ */
11
+ import type { Violation } from './index';
12
+ /** Result of attempting to fix a single violation */
13
+ export interface FixResult {
14
+ ruleId: string;
15
+ filePath: string;
16
+ line: number;
17
+ status: 'applied' | 'skipped' | 'failed' | 'reverted';
18
+ original: string;
19
+ fixed: string;
20
+ reason?: string;
21
+ /** True if this fix changes rendering behavior (e.g. innerHTML → textContent) */
22
+ warning?: string;
23
+ }
24
+ /** Result of fixing an entire file */
25
+ export interface FileFixResult {
26
+ filePath: string;
27
+ originalContent: string;
28
+ fixedContent: string;
29
+ fixes: FixResult[];
30
+ /** False until caller re-scans to verify violations are gone */
31
+ verified: boolean;
32
+ }
33
+ /** Options for the fix operation */
34
+ export interface FixOptions {
35
+ dryRun?: boolean;
36
+ rules?: string[];
37
+ verbose?: boolean;
38
+ }
39
+ /**
40
+ * Transform: url-upgrade (coppa-sec-006)
41
+ * Replaces http:// with https:// on the violation line.
42
+ */
43
+ export declare function transformUrlUpgrade(line: string, _violation: Violation): string;
44
+ /**
45
+ * Transform: remove-default (coppa-sec-010)
46
+ * Replaces weak hardcoded password string literals with a secure alternative.
47
+ *
48
+ * Guards against false positives:
49
+ * - Enum definitions: PASSWORD = 'password' (discriminant, not a real password)
50
+ * - Input type declarations: type: 'password' (HTML type attribute)
51
+ * - Switch case labels: case 'password': (discriminant)
52
+ */
53
+ export declare function transformRemoveDefault(line: string, _violation: Violation): string;
54
+ /**
55
+ * Transform: sanitize-input (coppa-sec-015)
56
+ * Replaces .innerHTML assignments with .textContent.
57
+ * ⚠️ WARNING: This changes rendering behavior. If the developer needs HTML rendering,
58
+ * this fix will break their UI. Flagged with a warning in dry-run output.
59
+ *
60
+ * Guards against false positives:
61
+ * - Already-sanitized dangerouslySetInnerHTML (content already wrapped in DOMPurify.sanitize)
62
+ */
63
+ export declare function transformSanitizeInput(line: string, _violation: Violation): string;
64
+ /**
65
+ * Transform: set-default (coppa-default-020)
66
+ * Changes public profile defaults to private.
67
+ *
68
+ * Guards against false positives:
69
+ * - TypeScript type unions: visibility: 'public' | 'private' (type definition, not runtime value)
70
+ */
71
+ export declare function transformSetDefault(line: string, _violation: Violation): string;
72
+ export declare class FixEngine {
73
+ /**
74
+ * Check if a violation is auto-fixable (Tier 1).
75
+ * Uses the fixability field already populated on the violation.
76
+ */
77
+ isAutoFixable(violation: Violation): boolean;
78
+ /**
79
+ * Check if a rule ID is auto-fixable by looking at a violation's remediation metadata.
80
+ * For use when you have a ruleId but no violation object — checks against known auto-fix transforms.
81
+ */
82
+ isRuleAutoFixable(ruleId: string): boolean;
83
+ /**
84
+ * Get all auto-fixable rule IDs.
85
+ */
86
+ getAutoFixableRules(): string[];
87
+ /**
88
+ * Apply fixes to file content for a set of violations.
89
+ * Violations must all belong to the same file.
90
+ * Processes bottom-to-top to preserve line numbers.
91
+ * Returns the fixed content (does NOT write to disk).
92
+ */
93
+ applyFixes(content: string, violations: Violation[], options?: FixOptions): FileFixResult;
94
+ /**
95
+ * Generate a simple unified diff between original and fixed content.
96
+ * Used for --dry-run output.
97
+ */
98
+ generateDiff(filePath: string, original: string, fixed: string): string;
99
+ }
package/dist/fixer.js ADDED
@@ -0,0 +1,274 @@
1
+ "use strict";
2
+ /**
3
+ * Halo Fix Engine
4
+ * Tier 1 auto-fix transforms for COPPA violations
5
+ *
6
+ * Sprint 5: 4 auto-fixable rules (line-targeted string transforms, no ts-morph)
7
+ * coppa-sec-006: HTTP → HTTPS (url-upgrade)
8
+ * coppa-sec-010: Remove weak passwords (remove-default)
9
+ * coppa-sec-015: innerHTML → textContent (sanitize-input) ⚠️ behavior change
10
+ * coppa-default-020: Public → private (set-default)
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.FixEngine = void 0;
14
+ exports.transformUrlUpgrade = transformUrlUpgrade;
15
+ exports.transformRemoveDefault = transformRemoveDefault;
16
+ exports.transformSanitizeInput = transformSanitizeInput;
17
+ exports.transformSetDefault = transformSetDefault;
18
+ // ==================== Transform Functions ====================
19
+ /**
20
+ * Transform: url-upgrade (coppa-sec-006)
21
+ * Replaces http:// with https:// on the violation line.
22
+ */
23
+ function transformUrlUpgrade(line, _violation) {
24
+ return line.replace(/http:\/\//g, 'https://');
25
+ }
26
+ /**
27
+ * Transform: remove-default (coppa-sec-010)
28
+ * Replaces weak hardcoded password string literals with a secure alternative.
29
+ *
30
+ * Guards against false positives:
31
+ * - Enum definitions: PASSWORD = 'password' (discriminant, not a real password)
32
+ * - Input type declarations: type: 'password' (HTML type attribute)
33
+ * - Switch case labels: case 'password': (discriminant)
34
+ */
35
+ function transformRemoveDefault(line, _violation) {
36
+ // Skip enum/const member definitions (SCREAMING_CASE = 'value') — case-sensitive for identifier
37
+ if (/^\s*[A-Z][A-Z0-9_]+\s*=\s*(['"])(123456|password|changeme|student|welcome|student123|child123|default|admin)\1/.test(line)) {
38
+ return line;
39
+ }
40
+ // Skip HTML input type declarations (type: 'password', type="password", type = "password")
41
+ if (/\btype\s*[:=]\s*(['"])password\1/i.test(line)) {
42
+ return line;
43
+ }
44
+ // Skip switch/case discriminants (case 'password':)
45
+ if (/\bcase\s+(['"])(password|admin|default)\1\s*:/i.test(line)) {
46
+ return line;
47
+ }
48
+ return line.replace(/(['"])(123456|password|changeme|student|welcome|student123|child123|default|admin)\1/gi, 'require("crypto").randomBytes(16).toString("hex")');
49
+ }
50
+ /**
51
+ * Transform: sanitize-input (coppa-sec-015)
52
+ * Replaces .innerHTML assignments with .textContent.
53
+ * ⚠️ WARNING: This changes rendering behavior. If the developer needs HTML rendering,
54
+ * this fix will break their UI. Flagged with a warning in dry-run output.
55
+ *
56
+ * Guards against false positives:
57
+ * - Already-sanitized dangerouslySetInnerHTML (content already wrapped in DOMPurify.sanitize)
58
+ */
59
+ function transformSanitizeInput(line, _violation) {
60
+ // Handle .innerHTML = ... → .textContent = ...
61
+ if (/\.innerHTML\s*=/.test(line)) {
62
+ return line.replace(/\.innerHTML\s*=/, '.textContent =');
63
+ }
64
+ // Handle dangerouslySetInnerHTML → wrap in DOMPurify.sanitize()
65
+ if (/dangerouslySetInnerHTML\s*=\s*\{\s*\{\s*__html\s*:\s*([^}]+)\}\s*\}/.test(line)) {
66
+ // Skip if the __html value is already wrapped in DOMPurify.sanitize()
67
+ const match = line.match(/dangerouslySetInnerHTML\s*=\s*\{\s*\{\s*__html\s*:\s*([^}]+)\}\s*\}/);
68
+ if (match && /DOMPurify\.sanitize\s*\(/.test(match[1])) {
69
+ return line; // Already sanitized — don't double-wrap
70
+ }
71
+ return line.replace(/dangerouslySetInnerHTML\s*=\s*\{\s*\{\s*__html\s*:\s*([^}]+)\}\s*\}/, 'dangerouslySetInnerHTML={{ __html: DOMPurify.sanitize($1) }}');
72
+ }
73
+ return line;
74
+ }
75
+ /**
76
+ * Transform: set-default (coppa-default-020)
77
+ * Changes public profile defaults to private.
78
+ *
79
+ * Guards against false positives:
80
+ * - TypeScript type unions: visibility: 'public' | 'private' (type definition, not runtime value)
81
+ */
82
+ function transformSetDefault(line, _violation) {
83
+ let result = line;
84
+ // Detect TypeScript type union patterns involving 'public' (e.g., 'public' | 'private')
85
+ const isTypeUnion = /['"]public['"]\s*\|/.test(line) || /\|\s*['"]public['"]/.test(line);
86
+ result = result.replace(/isProfileVisible:\s*true/gi, 'isProfileVisible: false');
87
+ // Only replace string literal 'public' values if NOT in a type union context
88
+ if (!isTypeUnion) {
89
+ result = result.replace(/visibility:\s*['"]public['"]/gi, "visibility: 'private'");
90
+ result = result.replace(/defaultPrivacy:\s*['"]public['"]/gi, "defaultPrivacy: 'private'");
91
+ }
92
+ result = result.replace(/isPublic:\s*true/gi, 'isPublic: false');
93
+ result = result.replace(/profileVisibility\s*=\s*['"]?public['"]?/gi, "profileVisibility = 'private'");
94
+ return result;
95
+ }
96
+ /** Maps transformType → transform function */
97
+ const TRANSFORM_REGISTRY = {
98
+ 'url-upgrade': transformUrlUpgrade,
99
+ 'remove-default': transformRemoveDefault,
100
+ 'sanitize-input': transformSanitizeInput,
101
+ 'set-default': transformSetDefault,
102
+ };
103
+ /** Rules where the fix changes rendering behavior and needs explicit warning */
104
+ const BEHAVIOR_CHANGING_RULES = new Set(['coppa-sec-015']);
105
+ // ==================== FixEngine Class ====================
106
+ class FixEngine {
107
+ /**
108
+ * Check if a violation is auto-fixable (Tier 1).
109
+ * Uses the fixability field already populated on the violation.
110
+ */
111
+ isAutoFixable(violation) {
112
+ return violation.fixability === 'auto' && violation.remediation?.transformType !== undefined;
113
+ }
114
+ /**
115
+ * Check if a rule ID is auto-fixable by looking at a violation's remediation metadata.
116
+ * For use when you have a ruleId but no violation object — checks against known auto-fix transforms.
117
+ */
118
+ isRuleAutoFixable(ruleId) {
119
+ // The 4 Tier 1 auto-fix rules with known transforms
120
+ return ['coppa-sec-006', 'coppa-sec-010', 'coppa-sec-015', 'coppa-default-020'].includes(ruleId);
121
+ }
122
+ /**
123
+ * Get all auto-fixable rule IDs.
124
+ */
125
+ getAutoFixableRules() {
126
+ return ['coppa-sec-006', 'coppa-sec-010', 'coppa-sec-015', 'coppa-default-020'];
127
+ }
128
+ /**
129
+ * Apply fixes to file content for a set of violations.
130
+ * Violations must all belong to the same file.
131
+ * Processes bottom-to-top to preserve line numbers.
132
+ * Returns the fixed content (does NOT write to disk).
133
+ */
134
+ applyFixes(content, violations, options) {
135
+ const fixes = [];
136
+ const lines = content.split('\n');
137
+ const filePath = violations[0]?.filePath || '';
138
+ // Filter to auto-fixable violations with known transforms
139
+ let fixable = violations.filter(v => this.isAutoFixable(v));
140
+ // Further filter by --rules if specified
141
+ if (options?.rules?.length) {
142
+ fixable = fixable.filter(v => options.rules.includes(v.ruleId));
143
+ }
144
+ // Sort by line number descending so edits don't shift subsequent lines
145
+ const sorted = [...fixable].sort((a, b) => b.line - a.line);
146
+ for (const violation of sorted) {
147
+ const transformType = violation.remediation?.transformType;
148
+ if (!transformType) {
149
+ fixes.push({
150
+ ruleId: violation.ruleId,
151
+ filePath,
152
+ line: violation.line,
153
+ status: 'skipped',
154
+ original: '',
155
+ fixed: '',
156
+ reason: 'No transform type defined',
157
+ });
158
+ continue;
159
+ }
160
+ const transform = TRANSFORM_REGISTRY[transformType];
161
+ if (!transform) {
162
+ fixes.push({
163
+ ruleId: violation.ruleId,
164
+ filePath,
165
+ line: violation.line,
166
+ status: 'skipped',
167
+ original: '',
168
+ fixed: '',
169
+ reason: `Unknown transform type: ${transformType}`,
170
+ });
171
+ continue;
172
+ }
173
+ const lineIdx = violation.line - 1;
174
+ if (lineIdx < 0 || lineIdx >= lines.length) {
175
+ fixes.push({
176
+ ruleId: violation.ruleId,
177
+ filePath,
178
+ line: violation.line,
179
+ status: 'failed',
180
+ original: '',
181
+ fixed: '',
182
+ reason: `Line ${violation.line} out of range`,
183
+ });
184
+ continue;
185
+ }
186
+ const originalLine = lines[lineIdx];
187
+ const fixedLine = transform(originalLine, violation);
188
+ if (fixedLine === originalLine) {
189
+ fixes.push({
190
+ ruleId: violation.ruleId,
191
+ filePath,
192
+ line: violation.line,
193
+ status: 'skipped',
194
+ original: originalLine,
195
+ fixed: fixedLine,
196
+ reason: 'Transform produced no change',
197
+ });
198
+ continue;
199
+ }
200
+ // Apply the transform
201
+ const fixedLines = fixedLine.split('\n');
202
+ lines.splice(lineIdx, 1, ...fixedLines);
203
+ const fix = {
204
+ ruleId: violation.ruleId,
205
+ filePath,
206
+ line: violation.line,
207
+ status: 'applied',
208
+ original: originalLine,
209
+ fixed: fixedLine,
210
+ };
211
+ // Add warning for behavior-changing transforms
212
+ if (BEHAVIOR_CHANGING_RULES.has(violation.ruleId)) {
213
+ fix.warning = 'This fix changes rendering behavior. Review before accepting.';
214
+ }
215
+ fixes.push(fix);
216
+ }
217
+ return {
218
+ filePath,
219
+ originalContent: content,
220
+ fixedContent: lines.join('\n'),
221
+ fixes,
222
+ verified: false,
223
+ };
224
+ }
225
+ /**
226
+ * Generate a simple unified diff between original and fixed content.
227
+ * Used for --dry-run output.
228
+ */
229
+ generateDiff(filePath, original, fixed) {
230
+ const origLines = original.split('\n');
231
+ const fixedLines = fixed.split('\n');
232
+ const output = [];
233
+ output.push(`--- a/${filePath}`);
234
+ output.push(`+++ b/${filePath}`);
235
+ let i = 0;
236
+ let j = 0;
237
+ while (i < origLines.length || j < fixedLines.length) {
238
+ if (i < origLines.length && j < fixedLines.length && origLines[i] === fixedLines[j]) {
239
+ i++;
240
+ j++;
241
+ continue;
242
+ }
243
+ // Found a difference — emit a hunk
244
+ const contextStart = Math.max(0, i - 1);
245
+ // Collect removed lines
246
+ const removed = [];
247
+ const added = [];
248
+ while (i < origLines.length && (j >= fixedLines.length || origLines[i] !== fixedLines[j])) {
249
+ removed.push(origLines[i]);
250
+ i++;
251
+ // Check if we've found alignment again
252
+ if (j < fixedLines.length && i < origLines.length && origLines[i] === fixedLines[j + added.length + 1]) {
253
+ break;
254
+ }
255
+ }
256
+ while (j < fixedLines.length && (i >= origLines.length || origLines[i] !== fixedLines[j])) {
257
+ added.push(fixedLines[j]);
258
+ j++;
259
+ }
260
+ if (removed.length > 0 || added.length > 0) {
261
+ output.push(`@@ -${contextStart + 1} +${contextStart + 1} @@`);
262
+ for (const line of removed) {
263
+ output.push(`-${line}`);
264
+ }
265
+ for (const line of added) {
266
+ output.push(`+${line}`);
267
+ }
268
+ }
269
+ }
270
+ return output.join('\n');
271
+ }
272
+ }
273
+ exports.FixEngine = FixEngine;
274
+ //# sourceMappingURL=fixer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixer.js","sourceRoot":"","sources":["../src/fixer.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -8,6 +8,14 @@
8
8
  */
9
9
  import Parser from 'tree-sitter';
10
10
  export type Severity = 'critical' | 'high' | 'medium' | 'low';
11
+ export type Fixability = 'auto' | 'guided' | 'flag-only';
12
+ export interface RemediationSpec {
13
+ fixability: Fixability;
14
+ transformType?: string;
15
+ scaffoldId?: string;
16
+ guidanceUrl?: string;
17
+ estimatedCost?: '$0' | '$0.01' | '$0.05';
18
+ }
11
19
  export interface Violation {
12
20
  ruleId: string;
13
21
  ruleName: string;
@@ -21,6 +29,11 @@ export interface Violation {
21
29
  penalty?: string;
22
30
  suppressed?: boolean;
23
31
  suppressionComment?: string;
32
+ category?: string;
33
+ language?: string;
34
+ matchType?: 'regex' | 'ast' | 'hybrid';
35
+ fixability?: Fixability;
36
+ remediation?: RemediationSpec;
24
37
  }
25
38
  export interface Rule {
26
39
  id: string;
@@ -31,6 +44,7 @@ export interface Rule {
31
44
  fixSuggestion: string;
32
45
  penalty: string;
33
46
  languages: string[];
47
+ remediation?: RemediationSpec;
34
48
  }
35
49
  export interface SuppressionConfig {
36
50
  enabled: boolean;
@@ -61,6 +75,8 @@ export declare class TreeSitterParser {
61
75
  extractIdentifiers(code: string): string[];
62
76
  }
63
77
  export declare const treeSitterParser: TreeSitterParser;
78
+ declare const REMEDIATION_MAP: Record<string, RemediationSpec>;
79
+ declare function getRemediation(ruleId: string): RemediationSpec;
64
80
  export declare const COPPA_RULES: Rule[];
65
81
  export declare const ETHICAL_RULES: Rule[];
66
82
  export interface IgnoreConfig {
@@ -151,4 +167,10 @@ export declare class HaloEngine {
151
167
  */
152
168
  getFixSuggestion(ruleId: string): string;
153
169
  }
170
+ export { REMEDIATION_MAP, getRemediation };
171
+ export { FixEngine } from './fixer';
172
+ export type { FixResult, FileFixResult, FixOptions } from './fixer';
173
+ export { transformUrlUpgrade, transformRemoveDefault, transformSanitizeInput, transformSetDefault, } from './fixer';
174
+ export { ComplianceScoreEngine } from './scoring';
175
+ export type { ComplianceScoreResult, LetterGrade } from './scoring';
154
176
  export default HaloEngine;
package/dist/index.js CHANGED
@@ -44,16 +44,37 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
44
44
  return (mod && mod.__esModule) ? mod : { "default": mod };
45
45
  };
46
46
  Object.defineProperty(exports, "__esModule", { value: true });
47
- exports.HaloEngine = exports.ETHICAL_RULES = exports.COPPA_RULES = exports.treeSitterParser = exports.TreeSitterParser = void 0;
47
+ exports.ComplianceScoreEngine = exports.transformSetDefault = exports.transformSanitizeInput = exports.transformRemoveDefault = exports.transformUrlUpgrade = exports.FixEngine = exports.REMEDIATION_MAP = exports.HaloEngine = exports.ETHICAL_RULES = exports.COPPA_RULES = exports.treeSitterParser = exports.TreeSitterParser = void 0;
48
48
  exports.loadRulesFromYAML = loadRulesFromYAML;
49
49
  exports.parseHaloignore = parseHaloignore;
50
50
  exports.shouldIgnoreFile = shouldIgnoreFile;
51
51
  exports.shouldIgnoreViolation = shouldIgnoreViolation;
52
+ exports.getRemediation = getRemediation;
52
53
  const fs = __importStar(require("fs"));
54
+ const path = __importStar(require("path"));
53
55
  const tree_sitter_1 = __importDefault(require("tree-sitter"));
54
56
  const tree_sitter_typescript_1 = __importDefault(require("tree-sitter-typescript"));
55
57
  const tree_sitter_javascript_1 = __importDefault(require("tree-sitter-javascript"));
56
58
  const yaml = __importStar(require("js-yaml"));
59
+ // Extract category from ruleId (e.g. "coppa-auth-001" → "auth", "ETHICAL-001" → "ethical")
60
+ function extractCategory(ruleId) {
61
+ if (ruleId.startsWith('ETHICAL'))
62
+ return 'ethical';
63
+ const match = ruleId.match(/^coppa-(\w+)-\d+$/);
64
+ return match ? match[1] : 'unknown';
65
+ }
66
+ // Detect language from file extension
67
+ function detectLanguage(filePath) {
68
+ const ext = path.extname(filePath).toLowerCase();
69
+ const langMap = {
70
+ '.ts': 'typescript', '.tsx': 'typescript', '.js': 'javascript', '.jsx': 'javascript',
71
+ '.py': 'python', '.swift': 'swift', '.java': 'java', '.kt': 'kotlin',
72
+ '.html': 'html', '.vue': 'vue', '.svelte': 'svelte', '.php': 'php',
73
+ '.cpp': 'cpp', '.h': 'cpp', '.hpp': 'cpp', '.cs': 'csharp',
74
+ '.qml': 'qml', '.sql': 'sql',
75
+ };
76
+ return langMap[ext] || 'unknown';
77
+ }
57
78
  // YAML Rule Loader - Load rules from coppa-tier-1.yaml
58
79
  function loadRulesFromYAML(yamlPath) {
59
80
  try {
@@ -192,6 +213,48 @@ function isViolationSuppressed(violation, suppressions, globalSuppressions) {
192
213
  }
193
214
  // COPPA Rule Definitions (Tier 1 - All 20 rules)
194
215
  // Rules 1-5 from Sprint 1, Rules 6-20 added in Sprint 2
216
+ // Remediation mapping: rule ID → fixability tier + metadata
217
+ // Per Daisy's three-tier spec (~/openclaw-projects/docs/halo-ai-remediation-spec.md)
218
+ // Tier 1 (auto): deterministic AST transforms, no LLM
219
+ // Tier 2 (guided): LLM scaffold + developer customization
220
+ // Tier 3 (flag-only): detection + guidance docs, no code generation
221
+ const REMEDIATION_MAP = {
222
+ // Tier 1 — Auto-fix (4 deterministic patterns)
223
+ 'coppa-sec-006': { fixability: 'auto', transformType: 'url-upgrade', estimatedCost: '$0' }, // HTTP → HTTPS
224
+ 'coppa-sec-010': { fixability: 'auto', transformType: 'remove-default', estimatedCost: '$0' }, // Remove hardcoded passwords
225
+ 'coppa-sec-015': { fixability: 'auto', transformType: 'sanitize-input', estimatedCost: '$0' }, // XSS innerHTML → textContent
226
+ 'coppa-default-020': { fixability: 'auto', transformType: 'set-default', estimatedCost: '$0' }, // Default profile → private
227
+ // Tier 2 — Guided (consent flows need developer context)
228
+ 'coppa-cookies-016': { fixability: 'guided', scaffoldId: 'consent-cookies', estimatedCost: '$0.01' }, // Cookie consent
229
+ // Tier 2 — Guided fix (LLM scaffold + developer customization)
230
+ 'coppa-auth-001': { fixability: 'guided', scaffoldId: 'age-gate-auth', estimatedCost: '$0.01' }, // Age gate for social login
231
+ 'coppa-data-002': { fixability: 'guided', scaffoldId: 'pii-sanitizer', estimatedCost: '$0.01' }, // PII removal from URLs
232
+ 'coppa-retention-005': { fixability: 'guided', scaffoldId: 'retention-policy', estimatedCost: '$0.01' }, // Data retention policy
233
+ 'coppa-audio-007': { fixability: 'guided', scaffoldId: 'consent-audio', estimatedCost: '$0.01' }, // Parental consent for audio
234
+ 'coppa-ui-008': { fixability: 'guided', scaffoldId: 'privacy-link', estimatedCost: '$0.01' }, // Privacy policy on registration
235
+ 'coppa-flow-009': { fixability: 'guided', scaffoldId: 'parent-email', estimatedCost: '$0.01' }, // Parent email flow
236
+ 'coppa-bio-012': { fixability: 'guided', scaffoldId: 'consent-biometric', estimatedCost: '$0.01' }, // Biometric consent
237
+ 'coppa-ugc-014': { fixability: 'guided', scaffoldId: 'pii-filter', estimatedCost: '$0.01' }, // UGC PII filtering
238
+ 'coppa-analytics-018': { fixability: 'guided', scaffoldId: 'anonymize-analytics', estimatedCost: '$0.01' }, // Analytics anonymization
239
+ 'coppa-edu-019': { fixability: 'guided', scaffoldId: 'school-verify', estimatedCost: '$0.01' }, // School official verification
240
+ // Tier 2 — Guided (simpler scaffolds)
241
+ 'coppa-tracking-003': { fixability: 'guided', scaffoldId: 'remove-tracker', estimatedCost: '$0.01' }, // Ad tracker removal
242
+ 'coppa-geo-004': { fixability: 'guided', scaffoldId: 'remove-geo', estimatedCost: '$0.01' }, // Geolocation removal
243
+ 'coppa-notif-013': { fixability: 'guided', scaffoldId: 'consent-notif', estimatedCost: '$0.01' }, // Notification consent
244
+ 'coppa-ext-017': { fixability: 'guided', scaffoldId: 'exit-modal', estimatedCost: '$0.01' }, // External link warning
245
+ 'coppa-ext-011': { fixability: 'guided', scaffoldId: 'chat-moderation', estimatedCost: '$0.01' }, // Chat moderation
246
+ // Tier 3 — Flag only (ethical design, requires human judgment)
247
+ 'ETHICAL-001': { fixability: 'flag-only', guidanceUrl: 'https://docs.runhalo.dev/ethical/infinite-scroll', estimatedCost: '$0' },
248
+ 'ETHICAL-002': { fixability: 'flag-only', guidanceUrl: 'https://docs.runhalo.dev/ethical/streak-pressure', estimatedCost: '$0' },
249
+ 'ETHICAL-003': { fixability: 'flag-only', guidanceUrl: 'https://docs.runhalo.dev/ethical/variable-rewards', estimatedCost: '$0' },
250
+ 'ETHICAL-004': { fixability: 'flag-only', guidanceUrl: 'https://docs.runhalo.dev/ethical/manipulative-notifications', estimatedCost: '$0' },
251
+ 'ETHICAL-005': { fixability: 'flag-only', guidanceUrl: 'https://docs.runhalo.dev/ethical/artificial-scarcity', estimatedCost: '$0' },
252
+ };
253
+ exports.REMEDIATION_MAP = REMEDIATION_MAP;
254
+ // Look up remediation spec for a rule ID
255
+ function getRemediation(ruleId) {
256
+ return REMEDIATION_MAP[ruleId] || { fixability: 'flag-only', estimatedCost: '$0' };
257
+ }
195
258
  exports.COPPA_RULES = [
196
259
  // ========== Rules 1-5 (Sprint 1) ==========
197
260
  {
@@ -767,7 +830,12 @@ class HaloEngine {
767
830
  message: `${authRule.name}: Detected via AST analysis`,
768
831
  codeSnippet: content.split('\n')[call.line - 1]?.trim() || '',
769
832
  fixSuggestion: authRule.fixSuggestion,
770
- penalty: authRule.penalty
833
+ penalty: authRule.penalty,
834
+ category: extractCategory('coppa-auth-001'),
835
+ language: detectLanguage(filePath),
836
+ matchType: 'ast',
837
+ fixability: getRemediation('coppa-auth-001').fixability,
838
+ remediation: getRemediation('coppa-auth-001'),
771
839
  });
772
840
  }
773
841
  }
@@ -885,7 +953,12 @@ class HaloEngine {
885
953
  fixSuggestion: rule.fixSuggestion,
886
954
  penalty: rule.penalty,
887
955
  suppressed: suppressed || false,
888
- suppressionComment
956
+ suppressionComment,
957
+ category: extractCategory(rule.id),
958
+ language: detectLanguage(filePath),
959
+ matchType: 'regex',
960
+ fixability: getRemediation(rule.id).fixability,
961
+ remediation: getRemediation(rule.id),
889
962
  });
890
963
  }
891
964
  }
@@ -952,5 +1025,16 @@ Supported Languages: ${rule.languages.join(', ')}
952
1025
  }
953
1026
  }
954
1027
  exports.HaloEngine = HaloEngine;
1028
+ // Re-export fix engine (Sprint 5)
1029
+ var fixer_1 = require("./fixer");
1030
+ Object.defineProperty(exports, "FixEngine", { enumerable: true, get: function () { return fixer_1.FixEngine; } });
1031
+ var fixer_2 = require("./fixer");
1032
+ Object.defineProperty(exports, "transformUrlUpgrade", { enumerable: true, get: function () { return fixer_2.transformUrlUpgrade; } });
1033
+ Object.defineProperty(exports, "transformRemoveDefault", { enumerable: true, get: function () { return fixer_2.transformRemoveDefault; } });
1034
+ Object.defineProperty(exports, "transformSanitizeInput", { enumerable: true, get: function () { return fixer_2.transformSanitizeInput; } });
1035
+ Object.defineProperty(exports, "transformSetDefault", { enumerable: true, get: function () { return fixer_2.transformSetDefault; } });
1036
+ // Re-export compliance score engine (Sprint 5 Track 3)
1037
+ var scoring_1 = require("./scoring");
1038
+ Object.defineProperty(exports, "ComplianceScoreEngine", { enumerable: true, get: function () { return scoring_1.ComplianceScoreEngine; } });
955
1039
  exports.default = HaloEngine;
956
1040
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * Halo Compliance Score Engine
3
+ * Weighted scoring model: severity × category weight → 0-100 score + letter grade
4
+ *
5
+ * Sprint 5 Track 3: The single metric that transforms Halo from lint tool to compliance platform.
6
+ *
7
+ * Scoring model:
8
+ * Start at 100, deduct points per violation based on severity:
9
+ * - Critical: -10 points (auth, data collection, age gates — highest penalty exposure)
10
+ * - High: -5 points (XSS, weak crypto, geolocation — significant risk)
11
+ * - Medium: -2 points (public defaults, cookies, notifications — moderate risk)
12
+ * - Low: -1 point (HTTP in comments, minor UI patterns — cosmetic)
13
+ * Floor at 0. Letter grade: A (90+), B (75+), C (60+), D (40+), F (<40).
14
+ */
15
+ import type { Violation, Severity } from './index';
16
+ export type LetterGrade = 'A' | 'B' | 'C' | 'D' | 'F';
17
+ export interface ComplianceScoreResult {
18
+ /** Numeric score 0-100 */
19
+ score: number;
20
+ /** Letter grade A-F */
21
+ grade: LetterGrade;
22
+ /** Total violations counted */
23
+ totalViolations: number;
24
+ /** Violations broken down by severity */
25
+ bySeverity: Record<Severity, number>;
26
+ /** Total points deducted */
27
+ pointsDeducted: number;
28
+ /** How many files were scanned */
29
+ filesScanned: number;
30
+ /** Unique rules that triggered */
31
+ rulesTriggered: string[];
32
+ /** Summary line for CLI output */
33
+ summary: string;
34
+ }
35
+ export declare class ComplianceScoreEngine {
36
+ /**
37
+ * Calculate compliance score from a set of violations.
38
+ *
39
+ * @param violations - All violations from a scan (unsuppressed only)
40
+ * @param filesScanned - Number of files scanned (for context)
41
+ * @returns ComplianceScoreResult with score, grade, and breakdown
42
+ */
43
+ calculate(violations: Violation[], filesScanned?: number): ComplianceScoreResult;
44
+ /**
45
+ * Get letter grade for a numeric score.
46
+ */
47
+ getGrade(score: number): LetterGrade;
48
+ /**
49
+ * Format a human-readable summary line for CLI output.
50
+ */
51
+ formatSummary(score: number, grade: LetterGrade, totalViolations: number, bySeverity: Record<Severity, number>): string;
52
+ }
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ /**
3
+ * Halo Compliance Score Engine
4
+ * Weighted scoring model: severity × category weight → 0-100 score + letter grade
5
+ *
6
+ * Sprint 5 Track 3: The single metric that transforms Halo from lint tool to compliance platform.
7
+ *
8
+ * Scoring model:
9
+ * Start at 100, deduct points per violation based on severity:
10
+ * - Critical: -10 points (auth, data collection, age gates — highest penalty exposure)
11
+ * - High: -5 points (XSS, weak crypto, geolocation — significant risk)
12
+ * - Medium: -2 points (public defaults, cookies, notifications — moderate risk)
13
+ * - Low: -1 point (HTTP in comments, minor UI patterns — cosmetic)
14
+ * Floor at 0. Letter grade: A (90+), B (75+), C (60+), D (40+), F (<40).
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.ComplianceScoreEngine = void 0;
18
+ // ==================== Constants ====================
19
+ /** Points deducted per violation by severity */
20
+ const SEVERITY_WEIGHTS = {
21
+ critical: 10,
22
+ high: 5,
23
+ medium: 2,
24
+ low: 1,
25
+ };
26
+ /** Score thresholds for letter grades */
27
+ const GRADE_THRESHOLDS = [
28
+ { min: 90, grade: 'A' },
29
+ { min: 75, grade: 'B' },
30
+ { min: 60, grade: 'C' },
31
+ { min: 40, grade: 'D' },
32
+ { min: 0, grade: 'F' },
33
+ ];
34
+ // ==================== Score Engine ====================
35
+ class ComplianceScoreEngine {
36
+ /**
37
+ * Calculate compliance score from a set of violations.
38
+ *
39
+ * @param violations - All violations from a scan (unsuppressed only)
40
+ * @param filesScanned - Number of files scanned (for context)
41
+ * @returns ComplianceScoreResult with score, grade, and breakdown
42
+ */
43
+ calculate(violations, filesScanned = 0) {
44
+ const bySeverity = {
45
+ critical: 0,
46
+ high: 0,
47
+ medium: 0,
48
+ low: 0,
49
+ };
50
+ const rulesTriggered = new Set();
51
+ for (const v of violations) {
52
+ bySeverity[v.severity] = (bySeverity[v.severity] || 0) + 1;
53
+ rulesTriggered.add(v.ruleId);
54
+ }
55
+ const pointsDeducted = bySeverity.critical * SEVERITY_WEIGHTS.critical +
56
+ bySeverity.high * SEVERITY_WEIGHTS.high +
57
+ bySeverity.medium * SEVERITY_WEIGHTS.medium +
58
+ bySeverity.low * SEVERITY_WEIGHTS.low;
59
+ const score = Math.max(0, 100 - pointsDeducted);
60
+ const grade = this.getGrade(score);
61
+ const summary = this.formatSummary(score, grade, violations.length, bySeverity);
62
+ return {
63
+ score,
64
+ grade,
65
+ totalViolations: violations.length,
66
+ bySeverity,
67
+ pointsDeducted,
68
+ filesScanned,
69
+ rulesTriggered: Array.from(rulesTriggered).sort(),
70
+ summary,
71
+ };
72
+ }
73
+ /**
74
+ * Get letter grade for a numeric score.
75
+ */
76
+ getGrade(score) {
77
+ for (const threshold of GRADE_THRESHOLDS) {
78
+ if (score >= threshold.min) {
79
+ return threshold.grade;
80
+ }
81
+ }
82
+ return 'F';
83
+ }
84
+ /**
85
+ * Format a human-readable summary line for CLI output.
86
+ */
87
+ formatSummary(score, grade, totalViolations, bySeverity) {
88
+ if (totalViolations === 0) {
89
+ return `COPPA Compliance Score: 100/100 (A) — No violations found`;
90
+ }
91
+ const parts = [];
92
+ if (bySeverity.critical > 0)
93
+ parts.push(`${bySeverity.critical} critical`);
94
+ if (bySeverity.high > 0)
95
+ parts.push(`${bySeverity.high} high`);
96
+ if (bySeverity.medium > 0)
97
+ parts.push(`${bySeverity.medium} medium`);
98
+ if (bySeverity.low > 0)
99
+ parts.push(`${bySeverity.low} low`);
100
+ return `COPPA Compliance Score: ${score}/100 (${grade}) — ${totalViolations} violation(s): ${parts.join(', ')}`;
101
+ }
102
+ }
103
+ exports.ComplianceScoreEngine = ComplianceScoreEngine;
104
+ //# sourceMappingURL=scoring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scoring.js","sourceRoot":"","sources":["../src/scoring.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "@runhalo/engine",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Halo rule engine — COPPA 2.0 risk detection via tree-sitter AST analysis",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "files": [
8
8
  "dist/",
9
- "rules/"
9
+ "rules/",
10
+ "README.md"
10
11
  ],
11
12
  "scripts": {
12
13
  "build": "tsc",