jaku.sh 1.0.2 → 1.0.3
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 +1 -1
- package/action.yml +1 -1
- package/package.json +2 -1
- package/src/agents/orchestrator.js +1 -1
- package/src/cli.js +3 -3
- package/src/core/crawler.js +22 -1
- package/src/reporting/report-generator.js +1 -1
- package/src/reporting/sarif-generator.js +2 -2
package/README.md
CHANGED
|
@@ -467,7 +467,7 @@ node src/cli.js ai https://myapp.dev/api/chat --max-pages 1 -v
|
|
|
467
467
|
```
|
|
468
468
|
╦╔═╗╦╔═╦ ╦
|
|
469
469
|
║╠═╣╠╩╗║ ║ 呪 Autonomous Security & Quality Intelligence
|
|
470
|
-
╚╝╩ ╩╩ ╩╚═╝ v1.0.
|
|
470
|
+
╚╝╩ ╩╩ ╩╚═╝ v1.0.3 · Multi-Agent
|
|
471
471
|
|
|
472
472
|
Target: https://your-app.dev
|
|
473
473
|
Modules: QA + SECURITY + AI
|
package/action.yml
CHANGED
|
@@ -217,7 +217,7 @@ runs:
|
|
|
217
217
|
}
|
|
218
218
|
}
|
|
219
219
|
|
|
220
|
-
body += '\n---\n*Scanned by [JAKU](https://github.com/jaku-security/jaku) v1.0.
|
|
220
|
+
body += '\n---\n*Scanned by [JAKU](https://github.com/jaku-security/jaku) v1.0.3*';
|
|
221
221
|
} else {
|
|
222
222
|
body += '⚠️ Scan completed but no report was generated. Check workflow logs for errors.';
|
|
223
223
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jaku.sh",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "JAKU (呪) — Autonomous Security & Quality Intelligence Agent for vibe-coded apps. XSS, SQLi, prompt injection, QA testing, and attack chain correlation in one command.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "src/cli.js",
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
],
|
|
19
19
|
"scripts": {
|
|
20
20
|
"scan": "node src/cli.js scan",
|
|
21
|
+
"postinstall": "npx playwright install chromium 2>/dev/null || echo '⚠ JAKU: Could not auto-install Chromium. Run: npx playwright install chromium'",
|
|
21
22
|
"prepublishOnly": "node src/cli.js --help"
|
|
22
23
|
},
|
|
23
24
|
"keywords": [
|
package/src/cli.js
CHANGED
|
@@ -18,7 +18,7 @@ import { AuthManager } from './core/auth-manager.js';
|
|
|
18
18
|
const BANNER = `
|
|
19
19
|
${chalk.hex('#00ff88').bold(' ╦╔═╗╦╔═╦ ╦')}
|
|
20
20
|
${chalk.hex('#00ff88').bold(' ║╠═╣╠╩╗║ ║')} ${chalk.dim('呪 Autonomous Security & Quality Intelligence')}
|
|
21
|
-
${chalk.hex('#00ff88').bold(' ╚╝╩ ╩╩ ╩╚═╝')} ${chalk.dim('v1.0.
|
|
21
|
+
${chalk.hex('#00ff88').bold(' ╚╝╩ ╩╩ ╩╚═╝')} ${chalk.dim('v1.0.3 · Multi-Agent')}
|
|
22
22
|
`;
|
|
23
23
|
|
|
24
24
|
const program = new Command();
|
|
@@ -26,7 +26,7 @@ const program = new Command();
|
|
|
26
26
|
program
|
|
27
27
|
.name('jaku')
|
|
28
28
|
.description('JAKU (呪) — Autonomous QA & Security scanning agent for vibe-coded apps')
|
|
29
|
-
.version('1.0.
|
|
29
|
+
.version('1.0.3');
|
|
30
30
|
|
|
31
31
|
// ═══════════════════════════════════════════════
|
|
32
32
|
// Multi-Agent Scan Runner
|
|
@@ -234,7 +234,7 @@ async function runScan(url, options, modulesToRun) {
|
|
|
234
234
|
options.compliance,
|
|
235
235
|
results.findings,
|
|
236
236
|
reportDir,
|
|
237
|
-
{ target: url, version: '1.0.
|
|
237
|
+
{ target: url, version: '1.0.3', scannedAt: new Date().toISOString() }
|
|
238
238
|
);
|
|
239
239
|
}
|
|
240
240
|
|
package/src/core/crawler.js
CHANGED
|
@@ -45,7 +45,28 @@ export class Crawler {
|
|
|
45
45
|
*/
|
|
46
46
|
async crawl(targetUrl, authState = null, seedLinks = []) {
|
|
47
47
|
this.baseUrl = new URL(targetUrl);
|
|
48
|
-
|
|
48
|
+
|
|
49
|
+
let browser;
|
|
50
|
+
try {
|
|
51
|
+
browser = await chromium.launch({ headless: true });
|
|
52
|
+
} catch (err) {
|
|
53
|
+
if (err.message.includes("Executable doesn't exist") || err.message.includes('playwright install')) {
|
|
54
|
+
this.logger?.warn?.('Chromium not found — attempting automatic install...');
|
|
55
|
+
const { execSync } = await import('child_process');
|
|
56
|
+
try {
|
|
57
|
+
execSync('npx playwright install chromium', { stdio: 'inherit', timeout: 120000 });
|
|
58
|
+
browser = await chromium.launch({ headless: true });
|
|
59
|
+
} catch {
|
|
60
|
+
throw new Error(
|
|
61
|
+
'Playwright Chromium is not installed. Run:\n\n' +
|
|
62
|
+
' npx playwright install chromium\n\n' +
|
|
63
|
+
'Then re-run your jaku command.'
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
} else {
|
|
67
|
+
throw err;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
49
70
|
|
|
50
71
|
const contextOptions = {
|
|
51
72
|
viewport: { width: 1440, height: 900 },
|
|
@@ -141,8 +141,8 @@ export function generateSARIF(findings, meta = {}) {
|
|
|
141
141
|
tool: {
|
|
142
142
|
driver: {
|
|
143
143
|
name: 'JAKU',
|
|
144
|
-
version: meta.version || '1.0.
|
|
145
|
-
semanticVersion: meta.version || '1.0.
|
|
144
|
+
version: meta.version || '1.0.3',
|
|
145
|
+
semanticVersion: meta.version || '1.0.3',
|
|
146
146
|
informationUri: 'https://github.com/jaku-security',
|
|
147
147
|
rules,
|
|
148
148
|
},
|