sork-queb 1.0.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.
Files changed (42) hide show
  1. package/README.md +757 -0
  2. package/dist/bin/sork.d.ts +3 -0
  3. package/dist/bin/sork.d.ts.map +1 -0
  4. package/dist/bin/sork.js +123 -0
  5. package/dist/bin/sork.js.map +1 -0
  6. package/dist/lib/agents/keeper.d.ts +16 -0
  7. package/dist/lib/agents/keeper.d.ts.map +1 -0
  8. package/dist/lib/agents/keeper.js +91 -0
  9. package/dist/lib/agents/keeper.js.map +1 -0
  10. package/dist/lib/agents/remediation.d.ts +10 -0
  11. package/dist/lib/agents/remediation.d.ts.map +1 -0
  12. package/dist/lib/agents/remediation.js +99 -0
  13. package/dist/lib/agents/remediation.js.map +1 -0
  14. package/dist/lib/agents/triage.d.ts +10 -0
  15. package/dist/lib/agents/triage.d.ts.map +1 -0
  16. package/dist/lib/agents/triage.js +62 -0
  17. package/dist/lib/agents/triage.js.map +1 -0
  18. package/dist/lib/fixers/codeFixer.d.ts +14 -0
  19. package/dist/lib/fixers/codeFixer.d.ts.map +1 -0
  20. package/dist/lib/fixers/codeFixer.js +134 -0
  21. package/dist/lib/fixers/codeFixer.js.map +1 -0
  22. package/dist/lib/index.d.ts +9 -0
  23. package/dist/lib/index.d.ts.map +1 -0
  24. package/dist/lib/index.js +8 -0
  25. package/dist/lib/index.js.map +1 -0
  26. package/dist/lib/orchestrator.d.ts +19 -0
  27. package/dist/lib/orchestrator.d.ts.map +1 -0
  28. package/dist/lib/orchestrator.js +175 -0
  29. package/dist/lib/orchestrator.js.map +1 -0
  30. package/dist/lib/security/scanner.d.ts +18 -0
  31. package/dist/lib/security/scanner.d.ts.map +1 -0
  32. package/dist/lib/security/scanner.js +287 -0
  33. package/dist/lib/security/scanner.js.map +1 -0
  34. package/dist/lib/types/index.d.ts +75 -0
  35. package/dist/lib/types/index.d.ts.map +1 -0
  36. package/dist/lib/types/index.js +5 -0
  37. package/dist/lib/types/index.js.map +1 -0
  38. package/dist/lib/utils/logger.d.ts +13 -0
  39. package/dist/lib/utils/logger.d.ts.map +1 -0
  40. package/dist/lib/utils/logger.js +35 -0
  41. package/dist/lib/utils/logger.js.map +1 -0
  42. package/package.json +52 -0
@@ -0,0 +1,8 @@
1
+ export { SorkOrchestrator } from './orchestrator.js';
2
+ export { TriageAgent } from './agents/triage.js';
3
+ export { RemediationAgent } from './agents/remediation.js';
4
+ export { KeeperAgent } from './agents/keeper.js';
5
+ export { SecurityScanner } from './security/scanner.js';
6
+ export { CodeFixer } from './fixers/codeFixer.js';
7
+ export { Logger } from './utils/logger.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { SorkOptions } from './types/index.js';
2
+ export declare class SorkOrchestrator {
3
+ private projectPath;
4
+ private logger;
5
+ private triage;
6
+ private remediation;
7
+ private keeper;
8
+ private scanner;
9
+ private fixer;
10
+ private session;
11
+ constructor(options?: SorkOptions);
12
+ initialize(): Promise<void>;
13
+ scan(): Promise<void>;
14
+ fix(): Promise<void>;
15
+ preCommit(): Promise<boolean>;
16
+ setupHooks(): Promise<void>;
17
+ status(): Promise<void>;
18
+ }
19
+ //# sourceMappingURL=orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../lib/orchestrator.ts"],"names":[],"mappings":"AAQA,OAAO,EAGL,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAE1B,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,KAAK,CAAY;IACzB,OAAO,CAAC,OAAO,CAAc;gBAEjB,OAAO,GAAE,WAAgB;IAoB/B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IA+B3B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmCrB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA4CpB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IA2B7B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAyB3B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CA8B9B"}
@@ -0,0 +1,175 @@
1
+ import { promises as fs } from 'fs';
2
+ import path from 'path';
3
+ import { Logger } from './utils/logger.js';
4
+ import { TriageAgent } from './agents/triage.js';
5
+ import { RemediationAgent } from './agents/remediation.js';
6
+ import { KeeperAgent } from './agents/keeper.js';
7
+ import { SecurityScanner } from './security/scanner.js';
8
+ import { CodeFixer } from './fixers/codeFixer.js';
9
+ export class SorkOrchestrator {
10
+ projectPath;
11
+ logger;
12
+ triage;
13
+ remediation;
14
+ keeper;
15
+ scanner;
16
+ fixer;
17
+ session;
18
+ constructor(options = {}) {
19
+ this.projectPath = options.projectPath || process.cwd();
20
+ this.logger = new Logger('ORCHESTRATOR');
21
+ this.triage = new TriageAgent(this.logger);
22
+ this.remediation = new RemediationAgent(this.logger);
23
+ this.keeper = new KeeperAgent(this.logger);
24
+ this.scanner = new SecurityScanner(this.projectPath, this.logger);
25
+ this.fixer = new CodeFixer(this.projectPath, this.logger);
26
+ this.session = {
27
+ timestamp: new Date(),
28
+ vulnerabilities: [],
29
+ fixes: [],
30
+ dismissed: [],
31
+ verified: [],
32
+ };
33
+ }
34
+ async initialize() {
35
+ this.logger.section('SORK Initialization');
36
+ const sorkConfig = {
37
+ version: '1.0.0',
38
+ initialized: new Date().toISOString(),
39
+ agents: {
40
+ triage: true,
41
+ remediation: true,
42
+ keeper: true,
43
+ },
44
+ settings: {
45
+ autoFix: true,
46
+ preCommitGuards: true,
47
+ strictMode: false,
48
+ },
49
+ };
50
+ const configPath = path.join(this.projectPath, '.sorkrc.json');
51
+ await fs.writeFile(configPath, JSON.stringify(sorkConfig, null, 2));
52
+ this.logger.success(`Configuration created: ${configPath}`);
53
+ const hooksDir = path.join(this.projectPath, '.sork', 'hooks');
54
+ await fs.mkdir(hooksDir, { recursive: true });
55
+ this.logger.success(`Hooks directory created`);
56
+ this.logger.info('✓ Connected to Anthropic model');
57
+ this.logger.info('✓ 3 agents registered: READY');
58
+ this.logger.info('\nNext: Run `sork setup-hooks` to enable pre-commit guards');
59
+ }
60
+ async scan() {
61
+ this.logger.section('SORK Security Scan');
62
+ this.logger.info('Agent 01 (TRIAGE) - Analyzing project...');
63
+ const vulnerabilities = await this.scanner.scan();
64
+ this.session.vulnerabilities = vulnerabilities;
65
+ if (vulnerabilities.length === 0) {
66
+ this.logger.success('No vulnerabilities detected!');
67
+ return;
68
+ }
69
+ this.logger.info(`Detected ${vulnerabilities.length} potential issues`);
70
+ const triageResults = await this.triage.analyze(vulnerabilities);
71
+ this.session.dismissed = triageResults.dismissed;
72
+ this.session.vulnerabilities = triageResults.confirmed;
73
+ this.logger.warn(`${triageResults.dismissed.length} false positives dismissed, ` +
74
+ `${triageResults.confirmed.length} confirmed threats`);
75
+ if (triageResults.confirmed.length > 0) {
76
+ this.logger.section('Confirmed Vulnerabilities');
77
+ triageResults.confirmed.forEach((vuln, i) => {
78
+ console.log(`${i + 1}. [${vuln.severity}] ${vuln.type}\n` +
79
+ ` File: ${vuln.file}:${vuln.line}\n` +
80
+ ` Issue: ${vuln.message}`);
81
+ });
82
+ }
83
+ }
84
+ async fix() {
85
+ this.logger.section('SORK Remediation');
86
+ if (this.session.vulnerabilities.length === 0) {
87
+ this.logger.warn('No vulnerabilities to fix. Run `sork scan` first.');
88
+ return;
89
+ }
90
+ this.logger.info(`Agent 02 (REMEDIATION) - Generating fixes for ${this.session.vulnerabilities.length} issues...`);
91
+ const fixes = await this.remediation.generateFixes(this.session.vulnerabilities);
92
+ this.session.fixes = fixes;
93
+ for (const fix of fixes) {
94
+ try {
95
+ await this.fixer.applyFix(fix);
96
+ this.logger.success(`Fixed: ${fix.type} in ${fix.file}`);
97
+ }
98
+ catch (error) {
99
+ this.logger.error(`Failed to fix ${fix.file}: ${error instanceof Error ? error.message : 'Unknown error'}`);
100
+ }
101
+ }
102
+ this.logger.success(`${fixes.length} fixes applied`);
103
+ this.logger.section('SORK Verification');
104
+ this.logger.info('Agent 03 (KEEPER) - Verifying fixes...');
105
+ const verificationResults = await this.keeper.verify(fixes, this.session.vulnerabilities);
106
+ this.session.verified = verificationResults.verified;
107
+ this.keeper.printSummary(verificationResults);
108
+ }
109
+ async preCommit() {
110
+ this.logger.section('Pre-Commit Security Check');
111
+ const stagedVulns = await this.scanner.scanStaged();
112
+ if (stagedVulns.length === 0) {
113
+ this.logger.success('All checks passed! Safe to commit.');
114
+ return true;
115
+ }
116
+ this.logger.error(`${stagedVulns.length} issues found in staged changes:`);
117
+ stagedVulns.forEach((vuln, i) => {
118
+ console.log(`${i + 1}. [${vuln.severity}] ${vuln.message} (${vuln.file})`);
119
+ });
120
+ const critical = stagedVulns.filter((v) => v.severity === 'CRITICAL');
121
+ if (critical.length > 0) {
122
+ this.logger.error('\n🚫 CRITICAL issues detected. Commit blocked.');
123
+ console.log('Run `sork fix` to auto-resolve, then try again.');
124
+ process.exit(1);
125
+ }
126
+ return false;
127
+ }
128
+ async setupHooks() {
129
+ this.logger.section('Setting Up Git Hooks');
130
+ const hookContent = `#!/bin/bash
131
+ sork pre-commit
132
+ exit_code=$?
133
+
134
+ if [ $exit_code -ne 0 ]; then
135
+ echo "Pre-commit checks failed. Commit aborted."
136
+ exit 1
137
+ fi
138
+
139
+ exit 0
140
+ `;
141
+ const hooksDir = path.join(this.projectPath, '.git', 'hooks');
142
+ const preCommitPath = path.join(hooksDir, 'pre-commit');
143
+ await fs.mkdir(hooksDir, { recursive: true });
144
+ await fs.writeFile(preCommitPath, hookContent, { mode: 0o755 });
145
+ this.logger.success('Pre-commit hook installed at .git/hooks/pre-commit');
146
+ this.logger.info('Hooks will run automatically before each commit');
147
+ }
148
+ async status() {
149
+ this.logger.section('SORK Status');
150
+ console.log('Agents:');
151
+ console.log(' ✓ Agent 01 (TRIAGE) - Operational');
152
+ console.log(' ✓ Agent 02 (REMEDIATION) - Operational');
153
+ console.log(' ✓ Agent 03 (KEEPER) - Operational');
154
+ console.log();
155
+ console.log('Configuration:');
156
+ try {
157
+ const configPath = path.join(this.projectPath, '.sorkrc.json');
158
+ const configContent = await fs.readFile(configPath, 'utf-8');
159
+ const config = JSON.parse(configContent);
160
+ console.log(` Version: ${config.version}`);
161
+ console.log(` Initialized: ${config.initialized}`);
162
+ console.log(` Auto-fix: ${config.settings.autoFix ? '✓' : '✗'}`);
163
+ console.log(` Pre-commit Guards: ${config.settings.preCommitGuards ? '✓' : '✗'}`);
164
+ }
165
+ catch {
166
+ console.log(' Status: Not initialized. Run `sork init` first.');
167
+ }
168
+ console.log();
169
+ console.log('Commands:');
170
+ console.log(' sork scan - Run security scan');
171
+ console.log(' sork fix - Auto-fix detected issues');
172
+ console.log(' sork pre-commit - Run pre-commit checks');
173
+ }
174
+ }
175
+ //# sourceMappingURL=orchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator.js","sourceRoot":"","sources":["../../lib/orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { Logger } from '../utils/logger.js';
2
+ import { Vulnerability } from '../types/index.js';
3
+ export declare class SecurityScanner {
4
+ private projectPath;
5
+ private logger;
6
+ constructor(projectPath: string, logger: Logger);
7
+ scan(): Promise<Vulnerability[]>;
8
+ scanStaged(): Promise<Vulnerability[]>;
9
+ private scanJavaScript;
10
+ private checkJavaScriptPatterns;
11
+ private scanSecrets;
12
+ private scanDependencies;
13
+ private findFiles;
14
+ private matchPattern;
15
+ private getStagedFiles;
16
+ private scanFiles;
17
+ }
18
+ //# sourceMappingURL=scanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../../../lib/security/scanner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAElD,qBAAa,eAAe;IAC1B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAS;gBAEX,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAKzC,IAAI,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAoBhC,UAAU,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAkB9B,cAAc;IAqB5B,OAAO,CAAC,uBAAuB;YAsFjB,WAAW;YA2CX,gBAAgB;YA2ChB,SAAS;IAiCvB,OAAO,CAAC,YAAY;YAQN,cAAc;YAiBd,SAAS;CAsBxB"}
@@ -0,0 +1,287 @@
1
+ import { promises as fs } from 'fs';
2
+ import path from 'path';
3
+ export class SecurityScanner {
4
+ projectPath;
5
+ logger;
6
+ constructor(projectPath, logger) {
7
+ this.projectPath = projectPath;
8
+ this.logger = logger;
9
+ }
10
+ async scan() {
11
+ this.logger.info('Scanning project for vulnerabilities...');
12
+ const vulnerabilities = [];
13
+ try {
14
+ const jsVulns = await this.scanJavaScript();
15
+ vulnerabilities.push(...jsVulns);
16
+ const secretVulns = await this.scanSecrets();
17
+ vulnerabilities.push(...secretVulns);
18
+ const depVulns = await this.scanDependencies();
19
+ vulnerabilities.push(...depVulns);
20
+ }
21
+ catch (error) {
22
+ this.logger.error(`Scan failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
23
+ }
24
+ return vulnerabilities;
25
+ }
26
+ async scanStaged() {
27
+ try {
28
+ const stagedFiles = await this.getStagedFiles();
29
+ if (stagedFiles.length === 0) {
30
+ this.logger.debug('No staged files found to scan');
31
+ return [];
32
+ }
33
+ return this.scanFiles(stagedFiles);
34
+ }
35
+ catch (error) {
36
+ this.logger.error(`Failed to scan staged files: ${error instanceof Error ? error.message : 'Unknown error'}`);
37
+ return [];
38
+ }
39
+ }
40
+ async scanJavaScript() {
41
+ const vulnerabilities = [];
42
+ try {
43
+ const files = await this.findFiles('**/*.{ts,tsx,js,jsx}', [
44
+ 'node_modules',
45
+ 'dist',
46
+ '.git',
47
+ ]);
48
+ for (const file of files) {
49
+ const content = await fs.readFile(file, 'utf-8');
50
+ const fileVulns = this.checkJavaScriptPatterns(content, file);
51
+ vulnerabilities.push(...fileVulns);
52
+ }
53
+ }
54
+ catch (error) {
55
+ this.logger.debug(`Failed to scan JavaScript: ${error}`);
56
+ }
57
+ return vulnerabilities;
58
+ }
59
+ checkJavaScriptPatterns(content, file) {
60
+ const vulnerabilities = [];
61
+ const lines = content.split('\n');
62
+ const sqlPattern = /sql\s*=\s*['"]/i;
63
+ const innerHTMLPattern = /innerHTML\s*=/i;
64
+ const dangerousPattern = /dangerouslySetInnerHTML/i;
65
+ const evalPattern = /\beval\s*\(/i;
66
+ const passwordPattern = /password\s*=\s*['"]/i;
67
+ const apiKeyPattern = /api[_-]?key\s*=\s*['"]/i;
68
+ const secretPattern = /\b(secret|token)\s*=\s*['"]/i;
69
+ const mathRandomPattern = /Math\.random\s*\(\)/i;
70
+ lines.forEach((line, index) => {
71
+ const lineNum = index + 1;
72
+ const trimmedLine = line.trim();
73
+ if (trimmedLine.startsWith('//') || trimmedLine.startsWith('/*') || !trimmedLine) {
74
+ return;
75
+ }
76
+ if (sqlPattern.test(line)) {
77
+ vulnerabilities.push({
78
+ type: 'SQL_INJECTION',
79
+ file,
80
+ line: lineNum,
81
+ column: line.indexOf('sql'),
82
+ message: 'Potential SQL injection - use parameterized queries',
83
+ code: trimmedLine,
84
+ severity: 'HIGH',
85
+ });
86
+ }
87
+ if (innerHTMLPattern.test(line) || dangerousPattern.test(line)) {
88
+ const column = Math.max(line.indexOf('innerHTML'), line.indexOf('dangerously'));
89
+ vulnerabilities.push({
90
+ type: 'XSS',
91
+ file,
92
+ line: lineNum,
93
+ column: column >= 0 ? column : 0,
94
+ message: 'Potential XSS vulnerability - avoid innerHTML with user input',
95
+ code: trimmedLine,
96
+ severity: 'HIGH',
97
+ });
98
+ }
99
+ if (passwordPattern.test(line) || apiKeyPattern.test(line) || secretPattern.test(line)) {
100
+ vulnerabilities.push({
101
+ type: 'HARDCODED_SECRET',
102
+ file,
103
+ line: lineNum,
104
+ column: 0,
105
+ message: 'Hardcoded secret detected - move to environment variable',
106
+ code: trimmedLine,
107
+ severity: 'CRITICAL',
108
+ });
109
+ }
110
+ if (evalPattern.test(line)) {
111
+ vulnerabilities.push({
112
+ type: 'UNSAFE_EVAL',
113
+ file,
114
+ line: lineNum,
115
+ column: line.indexOf('eval'),
116
+ message: 'Use of eval() is dangerous - use safer alternatives',
117
+ code: trimmedLine,
118
+ severity: 'CRITICAL',
119
+ });
120
+ }
121
+ if (mathRandomPattern.test(line)) {
122
+ vulnerabilities.push({
123
+ type: 'INSECURE_RANDOM',
124
+ file,
125
+ line: lineNum,
126
+ column: line.indexOf('Math'),
127
+ message: 'Math.random() is not cryptographically secure - use crypto module',
128
+ code: trimmedLine,
129
+ severity: 'HIGH',
130
+ });
131
+ }
132
+ });
133
+ return vulnerabilities;
134
+ }
135
+ async scanSecrets() {
136
+ const vulnerabilities = [];
137
+ try {
138
+ const secretPatterns = [
139
+ /api.?key\s*[=:]\s*['"]/i,
140
+ /api.?secret\s*[=:]\s*['"]/i,
141
+ /password\s*[=:]\s*['"]/i,
142
+ /\btoken\s*[=:]\s*['"]/i,
143
+ /auth.?secret\s*[=:]\s*['"]/i,
144
+ /private.?key\s*[=:]\s*['"]/i,
145
+ ];
146
+ const files = await this.findFiles('**/*', ['node_modules', 'dist', '.git']);
147
+ for (const file of files) {
148
+ try {
149
+ const content = await fs.readFile(file, 'utf-8');
150
+ const lines = content.split('\n');
151
+ lines.forEach((line, index) => {
152
+ if (secretPatterns.some((p) => p.test(line))) {
153
+ vulnerabilities.push({
154
+ type: 'HARDCODED_SECRET',
155
+ file,
156
+ line: index + 1,
157
+ column: 0,
158
+ message: 'Potential hardcoded secret detected',
159
+ severity: 'CRITICAL',
160
+ });
161
+ }
162
+ });
163
+ }
164
+ catch {
165
+ // Skip files that can't be read
166
+ }
167
+ }
168
+ }
169
+ catch (error) {
170
+ this.logger.debug(`Failed to scan secrets: ${error instanceof Error ? error.message : 'Unknown'}`);
171
+ }
172
+ return vulnerabilities;
173
+ }
174
+ async scanDependencies() {
175
+ const vulnerabilities = [];
176
+ try {
177
+ const packagePath = path.join(this.projectPath, 'package.json');
178
+ const packageContent = await fs.readFile(packagePath, 'utf-8');
179
+ let packageJson;
180
+ try {
181
+ packageJson = JSON.parse(packageContent);
182
+ }
183
+ catch (parseError) {
184
+ this.logger.debug(`Failed to parse package.json: ${parseError instanceof Error ? parseError.message : 'Invalid JSON'}`);
185
+ return vulnerabilities;
186
+ }
187
+ const dependencies = packageJson.dependencies;
188
+ const devDependencies = packageJson.devDependencies;
189
+ const allDeps = {
190
+ ...(dependencies && typeof dependencies === 'object' ? dependencies : {}),
191
+ ...(devDependencies && typeof devDependencies === 'object' ? devDependencies : {}),
192
+ };
193
+ Object.entries(allDeps).forEach(([name, version]) => {
194
+ if (typeof version === 'string' && version.includes('*')) {
195
+ vulnerabilities.push({
196
+ type: 'DEPENDENCY_VULN',
197
+ file: 'package.json',
198
+ line: 1,
199
+ column: 0,
200
+ message: `Dependency '${name}' has wildcard version - pin to specific version`,
201
+ severity: 'MEDIUM',
202
+ });
203
+ }
204
+ });
205
+ }
206
+ catch (error) {
207
+ this.logger.debug(`Failed to scan dependencies: ${error instanceof Error ? error.message : 'Unknown'}`);
208
+ }
209
+ return vulnerabilities;
210
+ }
211
+ async findFiles(pattern, exclude) {
212
+ const files = [];
213
+ const walk = async (dir) => {
214
+ try {
215
+ const entries = await fs.readdir(dir, { withFileTypes: true });
216
+ for (const entry of entries) {
217
+ const fullPath = path.join(dir, entry.name);
218
+ const relativePath = path.relative(this.projectPath, fullPath);
219
+ const pathSegments = relativePath.split(path.sep);
220
+ if (pathSegments.some((segment) => exclude.includes(segment))) {
221
+ continue;
222
+ }
223
+ if (entry.isDirectory()) {
224
+ await walk(fullPath);
225
+ }
226
+ else if (this.matchPattern(relativePath, pattern)) {
227
+ files.push(fullPath);
228
+ }
229
+ }
230
+ }
231
+ catch (error) {
232
+ if (error instanceof Error && error.code === 'EACCES') {
233
+ this.logger.debug(`Permission denied reading directory: ${dir}`);
234
+ }
235
+ }
236
+ };
237
+ await walk(this.projectPath);
238
+ return files;
239
+ }
240
+ matchPattern(file, pattern) {
241
+ const regex = pattern
242
+ .replace(/\./g, '\\.')
243
+ .replace(/\*/g, '.*')
244
+ .replace(/\?/g, '.');
245
+ return new RegExp(`^${regex}$`, 'i').test(file);
246
+ }
247
+ async getStagedFiles() {
248
+ try {
249
+ const { execFile } = await import('child_process');
250
+ const { promisify } = await import('util');
251
+ const execFileAsync = promisify(execFile);
252
+ const { stdout } = await execFileAsync('git', ['diff', '--cached', '--name-only']);
253
+ return stdout
254
+ .split('\n')
255
+ .filter((f) => f.length > 0)
256
+ .map((f) => path.join(this.projectPath, f));
257
+ }
258
+ catch (error) {
259
+ this.logger.debug(`Failed to get staged files: ${error instanceof Error ? error.message : 'Unknown'}`);
260
+ return [];
261
+ }
262
+ }
263
+ async scanFiles(files) {
264
+ const vulnerabilities = [];
265
+ for (const file of files) {
266
+ try {
267
+ const content = await fs.readFile(file, 'utf-8');
268
+ const fileVulns = this.checkJavaScriptPatterns(content, file);
269
+ vulnerabilities.push(...fileVulns);
270
+ }
271
+ catch (error) {
272
+ const err = error;
273
+ if (err.code === 'EACCES') {
274
+ this.logger.debug(`Permission denied reading file: ${file}`);
275
+ }
276
+ else if (err.code === 'ENOENT') {
277
+ this.logger.debug(`File not found: ${file}`);
278
+ }
279
+ else {
280
+ this.logger.debug(`Failed to read file ${file}: ${error instanceof Error ? error.message : 'Unknown'}`);
281
+ }
282
+ }
283
+ }
284
+ return vulnerabilities;
285
+ }
286
+ }
287
+ //# sourceMappingURL=scanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../../../lib/security/scanner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * SORK Type Definitions
3
+ */
4
+ export type SeverityLevel = 'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW';
5
+ export interface Vulnerability {
6
+ type: VulnerabilityType;
7
+ file: string;
8
+ line: number;
9
+ column?: number;
10
+ message: string;
11
+ code?: string;
12
+ severity: SeverityLevel;
13
+ cveId?: string;
14
+ dismissedReason?: string;
15
+ }
16
+ export type VulnerabilityType = 'SQL_INJECTION' | 'XSS' | 'HARDCODED_SECRET' | 'INSECURE_RANDOM' | 'MISSING_VALIDATION' | 'PATH_TRAVERSAL' | 'UNSAFE_EVAL' | 'CSRF' | 'DEPENDENCY_VULN';
17
+ export interface CodeFix {
18
+ type: VulnerabilityType;
19
+ file: string;
20
+ line: number;
21
+ description: string;
22
+ oldCode: string;
23
+ newCode: string;
24
+ priority: SeverityLevel;
25
+ }
26
+ export interface TriageResult {
27
+ dismissed: Vulnerability[];
28
+ confirmed: Vulnerability[];
29
+ }
30
+ export interface VerificationResult {
31
+ verified: CodeFix[];
32
+ failed: Array<{
33
+ fix: CodeFix;
34
+ reason: string;
35
+ }>;
36
+ regressions: Vulnerability[];
37
+ }
38
+ export interface AuditLogEntry {
39
+ timestamp: string;
40
+ action: 'FIXED' | 'FAILED' | 'REGRESSION' | 'SCANNED' | 'DISMISSED';
41
+ type: VulnerabilityType | string;
42
+ file: string;
43
+ details?: string;
44
+ }
45
+ export interface SorkSession {
46
+ timestamp: Date;
47
+ vulnerabilities: Vulnerability[];
48
+ fixes: CodeFix[];
49
+ dismissed: Vulnerability[];
50
+ verified: CodeFix[];
51
+ }
52
+ export interface SorkConfig {
53
+ version: string;
54
+ initialized: string;
55
+ agents: {
56
+ triage: boolean;
57
+ remediation: boolean;
58
+ keeper: boolean;
59
+ };
60
+ settings: {
61
+ autoFix: boolean;
62
+ preCommitGuards: boolean;
63
+ strictMode: boolean;
64
+ };
65
+ }
66
+ export interface SorkOptions {
67
+ projectPath?: string;
68
+ model?: 'anthropic' | 'local';
69
+ debug?: boolean;
70
+ }
71
+ export interface ScannerOptions {
72
+ excludePaths?: string[];
73
+ includeTypes?: VulnerabilityType[];
74
+ }
75
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAEnE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,iBAAiB,GACzB,eAAe,GACf,KAAK,GACL,kBAAkB,GAClB,iBAAiB,GACjB,oBAAoB,GACpB,gBAAgB,GAChB,aAAa,GACb,MAAM,GACN,iBAAiB,CAAC;AAEtB,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,iBAAiB,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,aAAa,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,SAAS,EAAE,aAAa,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChD,WAAW,EAAE,aAAa,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,GAAG,QAAQ,GAAG,YAAY,GAAG,SAAS,GAAG,WAAW,CAAC;IACpE,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,IAAI,CAAC;IAChB,eAAe,EAAE,aAAa,EAAE,CAAC;IACjC,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE;QACN,MAAM,EAAE,OAAO,CAAC;QAChB,WAAW,EAAE,OAAO,CAAC;QACrB,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;IACF,QAAQ,EAAE;QACR,OAAO,EAAE,OAAO,CAAC;QACjB,eAAe,EAAE,OAAO,CAAC;QACzB,UAAU,EAAE,OAAO,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACpC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * SORK Type Definitions
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/types/index.ts"],"names":[],"mappings":"AAAA;;GAEG"}