@jigyasudham/veto 2.8.0 → 3.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.
- package/README.md +52 -5
- package/dist/agents/development/performance.d.ts +2 -0
- package/dist/agents/development/performance.d.ts.map +1 -1
- package/dist/agents/development/performance.js +94 -0
- package/dist/agents/development/performance.js.map +1 -1
- package/dist/agents/executor.d.ts.map +1 -1
- package/dist/agents/executor.js +4 -0
- package/dist/agents/executor.js.map +1 -1
- package/dist/agents/manifest.js +4 -4
- package/dist/agents/manifest.js.map +1 -1
- package/dist/agents/quality/compatibility.d.ts +2 -0
- package/dist/agents/quality/compatibility.d.ts.map +1 -1
- package/dist/agents/quality/compatibility.js +110 -0
- package/dist/agents/quality/compatibility.js.map +1 -1
- package/dist/agents/security/auth.d.ts +2 -1
- package/dist/agents/security/auth.d.ts.map +1 -1
- package/dist/agents/security/auth.js +103 -0
- package/dist/agents/security/auth.js.map +1 -1
- package/dist/agents/security/privacy.d.ts +2 -1
- package/dist/agents/security/privacy.d.ts.map +1 -1
- package/dist/agents/security/privacy.js +130 -0
- package/dist/agents/security/privacy.js.map +1 -1
- package/dist/cli/statusline.d.ts +16 -1
- package/dist/cli/statusline.d.ts.map +1 -1
- package/dist/cli/statusline.js +94 -9
- package/dist/cli/statusline.js.map +1 -1
- package/dist/cli.js +135 -5
- package/dist/cli.js.map +1 -1
- package/dist/memory/config.d.ts +10 -0
- package/dist/memory/config.d.ts.map +1 -1
- package/dist/memory/config.js +48 -8
- package/dist/memory/config.js.map +1 -1
- package/dist/memory/local.d.ts +1 -0
- package/dist/memory/local.d.ts.map +1 -1
- package/dist/memory/local.js +54 -13
- package/dist/memory/local.js.map +1 -1
- package/dist/memory/schema.d.ts +1 -1
- package/dist/memory/schema.d.ts.map +1 -1
- package/dist/memory/schema.js +3 -2
- package/dist/memory/schema.js.map +1 -1
- package/dist/memory/sync.d.ts.map +1 -1
- package/dist/memory/sync.js +5 -5
- package/dist/memory/sync.js.map +1 -1
- package/dist/server/handlers/advisors.d.ts.map +1 -1
- package/dist/server/handlers/advisors.js +70 -61
- package/dist/server/handlers/advisors.js.map +1 -1
- package/dist/server/handlers/core.d.ts.map +1 -1
- package/dist/server/handlers/core.js +14 -1
- package/dist/server/handlers/core.js.map +1 -1
- package/dist/server/handlers/council.d.ts.map +1 -1
- package/dist/server/handlers/council.js +8 -3
- package/dist/server/handlers/council.js.map +1 -1
- package/dist/server/handlers/generators.d.ts.map +1 -1
- package/dist/server/handlers/generators.js +96 -86
- package/dist/server/handlers/generators.js.map +1 -1
- package/dist/server/handlers/git.d.ts.map +1 -1
- package/dist/server/handlers/git.js +21 -19
- package/dist/server/handlers/git.js.map +1 -1
- package/dist/server/handlers/session.d.ts.map +1 -1
- package/dist/server/handlers/session.js +51 -2
- package/dist/server/handlers/session.js.map +1 -1
- package/dist/server/scan-core.d.ts +34 -1
- package/dist/server/scan-core.d.ts.map +1 -1
- package/dist/server/scan-core.js +41 -0
- package/dist/server/scan-core.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +16 -2
- package/dist/server.js.map +1 -1
- package/dist/tools/definitions.d.ts +102 -6
- package/dist/tools/definitions.d.ts.map +1 -1
- package/dist/tools/definitions.js +90 -6
- package/dist/tools/definitions.js.map +1 -1
- package/dist/transcripts/adapters/claude.d.ts +27 -0
- package/dist/transcripts/adapters/claude.d.ts.map +1 -0
- package/dist/transcripts/adapters/claude.js +194 -0
- package/dist/transcripts/adapters/claude.js.map +1 -0
- package/dist/transcripts/archive.d.ts +23 -0
- package/dist/transcripts/archive.d.ts.map +1 -0
- package/dist/transcripts/archive.js +101 -0
- package/dist/transcripts/archive.js.map +1 -0
- package/dist/transcripts/config.d.ts +52 -0
- package/dist/transcripts/config.d.ts.map +1 -0
- package/dist/transcripts/config.js +135 -0
- package/dist/transcripts/config.js.map +1 -0
- package/dist/transcripts/expand.d.ts +20 -0
- package/dist/transcripts/expand.d.ts.map +1 -0
- package/dist/transcripts/expand.js +97 -0
- package/dist/transcripts/expand.js.map +1 -0
- package/dist/transcripts/ingest.d.ts +17 -0
- package/dist/transcripts/ingest.d.ts.map +1 -0
- package/dist/transcripts/ingest.js +113 -0
- package/dist/transcripts/ingest.js.map +1 -0
- package/dist/transcripts/manage.d.ts +42 -0
- package/dist/transcripts/manage.d.ts.map +1 -0
- package/dist/transcripts/manage.js +117 -0
- package/dist/transcripts/manage.js.map +1 -0
- package/dist/transcripts/mapping.d.ts +23 -0
- package/dist/transcripts/mapping.d.ts.map +1 -0
- package/dist/transcripts/mapping.js +42 -0
- package/dist/transcripts/mapping.js.map +1 -0
- package/dist/transcripts/mask.d.ts +26 -0
- package/dist/transcripts/mask.d.ts.map +1 -0
- package/dist/transcripts/mask.js +121 -0
- package/dist/transcripts/mask.js.map +1 -0
- package/dist/transcripts/on-save.d.ts +12 -0
- package/dist/transcripts/on-save.d.ts.map +1 -0
- package/dist/transcripts/on-save.js +37 -0
- package/dist/transcripts/on-save.js.map +1 -0
- package/dist/transcripts/pyramid.d.ts +38 -0
- package/dist/transcripts/pyramid.d.ts.map +1 -0
- package/dist/transcripts/pyramid.js +113 -0
- package/dist/transcripts/pyramid.js.map +1 -0
- package/dist/transcripts/recall.d.ts +39 -0
- package/dist/transcripts/recall.d.ts.map +1 -0
- package/dist/transcripts/recall.js +85 -0
- package/dist/transcripts/recall.js.map +1 -0
- package/dist/transcripts/schema.d.ts +69 -0
- package/dist/transcripts/schema.d.ts.map +1 -0
- package/dist/transcripts/schema.js +146 -0
- package/dist/transcripts/schema.js.map +1 -0
- package/dist/transcripts/search.d.ts +22 -0
- package/dist/transcripts/search.d.ts.map +1 -0
- package/dist/transcripts/search.js +134 -0
- package/dist/transcripts/search.js.map +1 -0
- package/dist/transcripts/store.d.ts +21 -0
- package/dist/transcripts/store.d.ts.map +1 -0
- package/dist/transcripts/store.js +105 -0
- package/dist/transcripts/store.js.map +1 -0
- package/dist/transcripts/toc.d.ts +18 -0
- package/dist/transcripts/toc.d.ts.map +1 -0
- package/dist/transcripts/toc.js +96 -0
- package/dist/transcripts/toc.js.map +1 -0
- package/dist/transcripts/tokenize.d.ts +14 -0
- package/dist/transcripts/tokenize.d.ts.map +1 -0
- package/dist/transcripts/tokenize.js +70 -0
- package/dist/transcripts/tokenize.js.map +1 -0
- package/package.json +2 -2
- package/server.json +2 -2
|
@@ -266,4 +266,107 @@ export function plan(task, context) {
|
|
|
266
266
|
duration_estimate: context?.includes('complex') ? '8-12 hours' : durationMap[authType],
|
|
267
267
|
};
|
|
268
268
|
}
|
|
269
|
+
const CHECKS = [
|
|
270
|
+
// JWT verification that accepts the "none" algorithm — signature bypass.
|
|
271
|
+
{
|
|
272
|
+
regex: /\balgorithms?\s*[:=]\s*\[?\s*['"]none['"]|\balg['"]?\s*[:=]\s*['"]none['"]/i,
|
|
273
|
+
severity: 'critical',
|
|
274
|
+
category: 'JWT Algorithm None',
|
|
275
|
+
description: 'The "none" JWT algorithm is accepted — an attacker can forge tokens with no valid signature.',
|
|
276
|
+
fix: 'Pin an explicit allow-list of asymmetric/HMAC algorithms (e.g. algorithms: ["RS256"]); never accept "none".',
|
|
277
|
+
cwe: 'CWE-347',
|
|
278
|
+
},
|
|
279
|
+
// Math.random() used to mint a security-sensitive value — not cryptographically secure.
|
|
280
|
+
{
|
|
281
|
+
regex: /(?:token|secret|session|nonce|otp|password|reset|salt|api_?key)[^\n]{0,40}Math\.random|Math\.random[^\n]{0,40}(?:token|secret|session|nonce|otp|password|reset|salt|api_?key)/i,
|
|
282
|
+
severity: 'high',
|
|
283
|
+
category: 'Weak Randomness for Secret',
|
|
284
|
+
description: 'Math.random() is used to generate a security value — it is predictable and not cryptographically secure.',
|
|
285
|
+
fix: 'Use crypto.randomBytes()/crypto.randomUUID() (Node) or crypto.getRandomValues() (browser).',
|
|
286
|
+
cwe: 'CWE-330',
|
|
287
|
+
},
|
|
288
|
+
// Password/credential compared with == / === instead of a constant-time hash check.
|
|
289
|
+
{
|
|
290
|
+
regex: /\b(?:password|passwd|pwd)\s*===?[^=]|===?\s*(?:\w+\.)*(?:password|passwd|pwd)\b/i,
|
|
291
|
+
severity: 'medium',
|
|
292
|
+
category: 'Non-Constant-Time Credential Compare',
|
|
293
|
+
description: 'A credential is compared with ==/=== — this leaks timing and implies a plaintext or non-hashed comparison.',
|
|
294
|
+
fix: 'Verify passwords with a slow hash comparison (bcrypt.compare / argon2.verify); compare other secrets with crypto.timingSafeEqual.',
|
|
295
|
+
cwe: 'CWE-208',
|
|
296
|
+
},
|
|
297
|
+
// jwt.sign(...) on a line with no expiresIn — tokens that never expire.
|
|
298
|
+
{
|
|
299
|
+
regex: /jwt\.sign\s*\((?:(?!expiresIn).)*$/i,
|
|
300
|
+
severity: 'medium',
|
|
301
|
+
category: 'JWT Without Expiry',
|
|
302
|
+
description: 'jwt.sign() is called with no expiresIn on this line — a token without an expiry is valid forever if leaked.',
|
|
303
|
+
fix: 'Set a short access-token lifetime (e.g. expiresIn: "15m") and use refresh-token rotation for longer sessions.',
|
|
304
|
+
cwe: 'CWE-613',
|
|
305
|
+
},
|
|
306
|
+
// Session/auth cookie with Secure or httpOnly explicitly disabled.
|
|
307
|
+
{
|
|
308
|
+
regex: /(?:secure|httpOnly)\s*:\s*false\b/i,
|
|
309
|
+
severity: 'medium',
|
|
310
|
+
category: 'Insecure Cookie Flag',
|
|
311
|
+
description: 'A cookie disables Secure or httpOnly — it can be sent over plain HTTP or read by page scripts (XSS theft).',
|
|
312
|
+
fix: 'Set session/auth cookies with { secure: true, httpOnly: true }.',
|
|
313
|
+
cwe: 'CWE-1004',
|
|
314
|
+
},
|
|
315
|
+
// SameSite=None weakens CSRF protection (only safe when paired with Secure + intent).
|
|
316
|
+
{
|
|
317
|
+
regex: /sameSite\s*[:=]\s*['"]?none['"]?/i,
|
|
318
|
+
severity: 'medium',
|
|
319
|
+
category: 'Cookie SameSite None',
|
|
320
|
+
description: 'SameSite=None sends the cookie on cross-site requests, re-opening CSRF exposure.',
|
|
321
|
+
fix: 'Use SameSite=Strict or Lax unless a cross-site cookie is truly required (and then only with Secure).',
|
|
322
|
+
cwe: 'CWE-1275',
|
|
323
|
+
},
|
|
324
|
+
];
|
|
325
|
+
// ─── Analysis API ──────────────────────────────────────────────────────────
|
|
326
|
+
export function analyze(code, context) {
|
|
327
|
+
const findings = [];
|
|
328
|
+
const lines = code.split('\n');
|
|
329
|
+
for (let i = 0; i < lines.length; i++) {
|
|
330
|
+
const line = lines[i];
|
|
331
|
+
for (const check of CHECKS) {
|
|
332
|
+
if (check.regex.test(line)) {
|
|
333
|
+
const finding = {
|
|
334
|
+
severity: check.severity,
|
|
335
|
+
category: check.category,
|
|
336
|
+
description: check.description,
|
|
337
|
+
fix: check.fix,
|
|
338
|
+
location: `line ${i + 1}`,
|
|
339
|
+
};
|
|
340
|
+
if (check.cwe)
|
|
341
|
+
finding.cwe = check.cwe;
|
|
342
|
+
findings.push(finding);
|
|
343
|
+
break; // one finding per line — highest-priority check wins
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
const critical = findings.filter(f => f.severity === 'critical').length;
|
|
348
|
+
const high = findings.filter(f => f.severity === 'high').length;
|
|
349
|
+
const medium = findings.filter(f => f.severity === 'medium').length;
|
|
350
|
+
const low = findings.filter(f => f.severity === 'low').length;
|
|
351
|
+
const raw = 100 - (critical * 25 + high * 10 + medium * 5 + low * 2);
|
|
352
|
+
const score = Math.max(0, raw);
|
|
353
|
+
const verdict = score >= 90 ? 'approved'
|
|
354
|
+
: score >= 70 ? 'approved_with_warnings'
|
|
355
|
+
: score >= 50 ? 'needs_revision'
|
|
356
|
+
: 'rejected';
|
|
357
|
+
const subject = context ?? 'provided code';
|
|
358
|
+
const summary = findings.length === 0
|
|
359
|
+
? `No authentication defects detected in ${subject}. Score: ${score}/100.`
|
|
360
|
+
: `Found ${findings.length} auth issue(s) in ${subject}: ${critical} critical, ${high} high, ${medium} medium, ${low} low. Score: ${score}/100 — ${verdict.replace(/_/g, ' ')}.`;
|
|
361
|
+
return {
|
|
362
|
+
agent: 'auth',
|
|
363
|
+
subject,
|
|
364
|
+
findings,
|
|
365
|
+
score,
|
|
366
|
+
verdict,
|
|
367
|
+
summary,
|
|
368
|
+
critical_count: critical,
|
|
369
|
+
high_count: high,
|
|
370
|
+
};
|
|
371
|
+
}
|
|
269
372
|
//# sourceMappingURL=auth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/agents/security/auth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/agents/security/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
import type { AgentPlan } from '../types.js';
|
|
1
|
+
import type { AgentPlan, AgentAnalysis } from '../types.js';
|
|
2
2
|
export declare function plan(task: string, context?: string): AgentPlan;
|
|
3
|
+
export declare function analyze(code: string, context?: string): AgentAnalysis;
|
|
3
4
|
//# sourceMappingURL=privacy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"privacy.d.ts","sourceRoot":"","sources":["../../../src/agents/security/privacy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"privacy.d.ts","sourceRoot":"","sources":["../../../src/agents/security/privacy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAiC,MAAM,aAAa,CAAC;AA4P3F,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAgC9D;AAuGD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,aAAa,CAqDrE"}
|
|
@@ -256,4 +256,134 @@ export function plan(task, context) {
|
|
|
256
256
|
duration_estimate: context?.includes('enterprise') ? '2-4 weeks' : durationMap[scenario],
|
|
257
257
|
};
|
|
258
258
|
}
|
|
259
|
+
const CHECKS = [
|
|
260
|
+
// Personal data written to logs — the single most common privacy leak.
|
|
261
|
+
{
|
|
262
|
+
regex: /(?:console\.(?:log|info|warn|error|debug)|logger?\.\w+|log\.\w+)\s*\([^)]*\b(?:e-?mail|ssn|social_?security|passport|phone|dob|date_?of_?birth|first_?name|last_?name|full_?name|home_?address|credit_?card)\b/i,
|
|
263
|
+
severity: 'high',
|
|
264
|
+
category: 'PII in Logs',
|
|
265
|
+
description: 'Personal data appears to be written to logs — logs are often retained, shipped to third parties, and searchable.',
|
|
266
|
+
fix: 'Never log personal data. Log an opaque user id instead, or redact PII fields before passing them to the logger.',
|
|
267
|
+
cwe: 'CWE-532',
|
|
268
|
+
},
|
|
269
|
+
// Real US Social Security Number literal in source.
|
|
270
|
+
{
|
|
271
|
+
regex: /\b\d{3}-\d{2}-\d{4}\b/,
|
|
272
|
+
severity: 'high',
|
|
273
|
+
category: 'Hardcoded PII',
|
|
274
|
+
description: 'A value matching a US Social Security Number (NNN-NN-NNNN) is present in source.',
|
|
275
|
+
fix: 'Remove real personal data from source and tests. Use clearly-synthetic fixtures (e.g. 000-00-0000).',
|
|
276
|
+
cwe: 'CWE-359',
|
|
277
|
+
},
|
|
278
|
+
// Payment card number literal (Visa / Mastercard / Amex).
|
|
279
|
+
{
|
|
280
|
+
regex: /\b(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|3[47][0-9]{13})\b/,
|
|
281
|
+
severity: 'high',
|
|
282
|
+
category: 'Hardcoded PII',
|
|
283
|
+
description: 'A value matching a payment-card number is present in source (PCI-DSS scope).',
|
|
284
|
+
fix: 'Never store raw card numbers. Use a PCI-compliant processor token; keep synthetic PANs out of source.',
|
|
285
|
+
cwe: 'CWE-359',
|
|
286
|
+
},
|
|
287
|
+
// Personal data forwarded to analytics / third-party SDKs.
|
|
288
|
+
{
|
|
289
|
+
regex: /(?:analytics|mixpanel|amplitude|segment|posthog|gtag|fbq|heap)\s*[.(][^;]{0,120}\b(?:e-?mail|ssn|phone|full_?name|user_?email)\b/i,
|
|
290
|
+
severity: 'medium',
|
|
291
|
+
category: 'PII Shared With Third Party',
|
|
292
|
+
description: 'Personal data appears to be sent to an analytics or third-party SDK, which usually requires a lawful basis and a DPA.',
|
|
293
|
+
fix: 'Pseudonymise before sending (hash/opaque id), obtain consent, and confirm a Data Processing Agreement covers the field.',
|
|
294
|
+
cwe: 'CWE-359',
|
|
295
|
+
},
|
|
296
|
+
// Special-category (Art. 9) / health data handling.
|
|
297
|
+
{
|
|
298
|
+
regex: /\b(?:diagnosis|medical_?record|health_?record|patient_?data|biometric|fingerprint_?data|genetic|ethnicity|religion|sexual_?orientation)\b/i,
|
|
299
|
+
severity: 'medium',
|
|
300
|
+
category: 'Special Category Data (GDPR Art. 9)',
|
|
301
|
+
description: 'Special-category personal data is referenced — it carries stricter consent and safeguarding obligations.',
|
|
302
|
+
fix: 'Require explicit consent, encrypt at rest, restrict access, and document the Art. 9 processing condition.',
|
|
303
|
+
cwe: 'CWE-359',
|
|
304
|
+
},
|
|
305
|
+
// Analytics/tracking initialised with no visible consent gate.
|
|
306
|
+
{
|
|
307
|
+
regex: /\b(?:gtag\s*\(\s*['"]config['"]|fbq\s*\(\s*['"]init['"]|ga\s*\(\s*['"]create['"])/,
|
|
308
|
+
severity: 'medium',
|
|
309
|
+
category: 'Tracking Without Consent',
|
|
310
|
+
description: 'A tracking pixel/analytics tag is initialised directly — under ePrivacy it must be gated behind opt-in consent.',
|
|
311
|
+
fix: 'Load tracking only after the user grants consent via a consent-management platform; block it by default.',
|
|
312
|
+
cwe: 'CWE-359',
|
|
313
|
+
},
|
|
314
|
+
// PII placed in a URL / query string (leaks into logs, referrers, history).
|
|
315
|
+
{
|
|
316
|
+
regex: /[?&](?:e-?mail|ssn|phone|dob|full_?name)=/i,
|
|
317
|
+
severity: 'medium',
|
|
318
|
+
category: 'PII in URL',
|
|
319
|
+
description: 'Personal data is passed in a URL query string, which leaks into server logs, browser history and Referer headers.',
|
|
320
|
+
fix: 'Move personal data out of the URL into a POST body or an opaque token.',
|
|
321
|
+
cwe: 'CWE-598',
|
|
322
|
+
},
|
|
323
|
+
// PII persisted to browser storage.
|
|
324
|
+
{
|
|
325
|
+
regex: /(?:localStorage|sessionStorage)\s*\.\s*setItem\s*\(\s*['"][^'"]*(?:e-?mail|ssn|phone|full_?name|dob)[^'"]*['"]/i,
|
|
326
|
+
severity: 'low',
|
|
327
|
+
category: 'PII in Client Storage',
|
|
328
|
+
description: 'Personal data is stored in browser storage, which is unencrypted and readable by any script on the page.',
|
|
329
|
+
fix: 'Keep PII server-side keyed by an opaque session id; store only non-identifying flags in the browser.',
|
|
330
|
+
cwe: 'CWE-359',
|
|
331
|
+
},
|
|
332
|
+
// Analytics explicitly configured NOT to anonymise IPs.
|
|
333
|
+
{
|
|
334
|
+
regex: /anonymize_?ip\s*[:=]\s*false/i,
|
|
335
|
+
severity: 'low',
|
|
336
|
+
category: 'Analytics IP Not Anonymised',
|
|
337
|
+
description: 'IP anonymisation is explicitly disabled — the full IP is personal data under GDPR.',
|
|
338
|
+
fix: 'Enable IP anonymisation (e.g. anonymize_ip: true) or avoid collecting the full address.',
|
|
339
|
+
cwe: 'CWE-359',
|
|
340
|
+
},
|
|
341
|
+
];
|
|
342
|
+
// ─── Analysis API ──────────────────────────────────────────────────────────
|
|
343
|
+
export function analyze(code, context) {
|
|
344
|
+
const findings = [];
|
|
345
|
+
const lines = code.split('\n');
|
|
346
|
+
for (let i = 0; i < lines.length; i++) {
|
|
347
|
+
const line = lines[i];
|
|
348
|
+
for (const check of CHECKS) {
|
|
349
|
+
if (check.regex.test(line)) {
|
|
350
|
+
const finding = {
|
|
351
|
+
severity: check.severity,
|
|
352
|
+
category: check.category,
|
|
353
|
+
description: check.description,
|
|
354
|
+
fix: check.fix,
|
|
355
|
+
location: `line ${i + 1}`,
|
|
356
|
+
};
|
|
357
|
+
if (check.cwe)
|
|
358
|
+
finding.cwe = check.cwe;
|
|
359
|
+
findings.push(finding);
|
|
360
|
+
break; // one finding per line — highest-priority check wins
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
const critical = findings.filter(f => f.severity === 'critical').length;
|
|
365
|
+
const high = findings.filter(f => f.severity === 'high').length;
|
|
366
|
+
const medium = findings.filter(f => f.severity === 'medium').length;
|
|
367
|
+
const low = findings.filter(f => f.severity === 'low').length;
|
|
368
|
+
const raw = 100 - (critical * 25 + high * 10 + medium * 5 + low * 2);
|
|
369
|
+
const score = Math.max(0, raw);
|
|
370
|
+
const verdict = score >= 90 ? 'approved'
|
|
371
|
+
: score >= 70 ? 'approved_with_warnings'
|
|
372
|
+
: score >= 50 ? 'needs_revision'
|
|
373
|
+
: 'rejected';
|
|
374
|
+
const subject = context ?? 'provided code';
|
|
375
|
+
const summary = findings.length === 0
|
|
376
|
+
? `No personal-data exposure risks detected in ${subject}. Score: ${score}/100.`
|
|
377
|
+
: `Found ${findings.length} privacy issue(s) in ${subject}: ${critical} critical, ${high} high, ${medium} medium, ${low} low. Score: ${score}/100 — ${verdict.replace(/_/g, ' ')}.`;
|
|
378
|
+
return {
|
|
379
|
+
agent: 'privacy',
|
|
380
|
+
subject,
|
|
381
|
+
findings,
|
|
382
|
+
score,
|
|
383
|
+
verdict,
|
|
384
|
+
summary,
|
|
385
|
+
critical_count: critical,
|
|
386
|
+
high_count: high,
|
|
387
|
+
};
|
|
388
|
+
}
|
|
259
389
|
//# sourceMappingURL=privacy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"privacy.js","sourceRoot":"","sources":["../../../src/agents/security/privacy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"privacy.js","sourceRoot":"","sources":["../../../src/agents/security/privacy.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/statusline.d.ts
CHANGED
|
@@ -6,13 +6,15 @@ export interface StatuslineData {
|
|
|
6
6
|
rate7dPct: number | null;
|
|
7
7
|
memCount: number | null;
|
|
8
8
|
}
|
|
9
|
-
export declare function readStatuslineData(): StatuslineData;
|
|
9
|
+
export declare function readStatuslineData(projectDir?: string): StatuslineData;
|
|
10
10
|
export interface ComposeOptions {
|
|
11
11
|
color?: boolean;
|
|
12
12
|
ascii?: boolean;
|
|
13
13
|
}
|
|
14
14
|
export declare function composeStatusline(data: StatuslineData, opts?: ComposeOptions): string;
|
|
15
15
|
export interface ClaudeStatusInput {
|
|
16
|
+
session_id?: string | null;
|
|
17
|
+
transcript_path?: string | null;
|
|
16
18
|
context_window?: {
|
|
17
19
|
used_percentage?: number | null;
|
|
18
20
|
} | null;
|
|
@@ -24,6 +26,11 @@ export interface ClaudeStatusInput {
|
|
|
24
26
|
used_percentage?: number | null;
|
|
25
27
|
} | null;
|
|
26
28
|
} | null;
|
|
29
|
+
workspace?: {
|
|
30
|
+
current_dir?: string | null;
|
|
31
|
+
project_dir?: string | null;
|
|
32
|
+
} | null;
|
|
33
|
+
cwd?: string | null;
|
|
27
34
|
}
|
|
28
35
|
export interface ClaudeLiveData {
|
|
29
36
|
contextPct: number | null;
|
|
@@ -32,7 +39,15 @@ export interface ClaudeLiveData {
|
|
|
32
39
|
}
|
|
33
40
|
export declare function parseClaudeInput(raw: string): ClaudeLiveData;
|
|
34
41
|
export declare function parseClaudeContextPct(raw: string): number | null;
|
|
42
|
+
export declare function parseClaudeCwd(raw: string): string | null;
|
|
43
|
+
export interface ClaudeSessionRef {
|
|
44
|
+
sessionId: string;
|
|
45
|
+
transcriptPath: string;
|
|
46
|
+
projectDir: string | null;
|
|
47
|
+
}
|
|
48
|
+
export declare function parseClaudeSession(raw: string): ClaudeSessionRef | null;
|
|
35
49
|
export declare function printStatusline(opts?: ComposeOptions, capturePath?: string): Promise<void>;
|
|
50
|
+
export declare function maybeRecordSessionMapping(raw: string | null): Promise<boolean>;
|
|
36
51
|
export interface InstallResult {
|
|
37
52
|
ok: boolean;
|
|
38
53
|
message: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statusline.d.ts","sourceRoot":"","sources":["../../src/cli/statusline.ts"],"names":[],"mappings":"AA2BA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC;IAC3C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;
|
|
1
|
+
{"version":3,"file":"statusline.d.ts","sourceRoot":"","sources":["../../src/cli/statusline.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/statusline.js
CHANGED
|
@@ -14,8 +14,8 @@ import { existsSync, readFileSync, writeFileSync, mkdirSync, unlinkSync, appendF
|
|
|
14
14
|
import { execSync } from 'node:child_process';
|
|
15
15
|
import { join, dirname } from 'node:path';
|
|
16
16
|
import { homedir } from 'node:os';
|
|
17
|
-
import { getDbPath, getDb } from '../memory/local.js';
|
|
18
|
-
// node:sqlite is
|
|
17
|
+
import { getDbPath, getDb, normalizeProjectDir } from '../memory/local.js';
|
|
18
|
+
// node:sqlite is unflagged from Node 22.13+/23.4+ — use createRequire so bundlers skip it.
|
|
19
19
|
// Required lazily inside openReadOnly so importing this module (server.ts pulls in
|
|
20
20
|
// statuslineSetupInstruction at startup) never dies on runtimes without node:sqlite.
|
|
21
21
|
const _require = createRequire(import.meta.url);
|
|
@@ -38,7 +38,9 @@ function openReadOnly(path) {
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
// Crash-proof read of everything the statusline shows. Never throws.
|
|
41
|
-
|
|
41
|
+
// `projectDir` (when known, e.g. from the Claude Code payload's workspace dir) scopes
|
|
42
|
+
// the council verdict to the current workspace instead of the global newest.
|
|
43
|
+
export function readStatuslineData(projectDir) {
|
|
42
44
|
let db = null;
|
|
43
45
|
let closeAfter = false;
|
|
44
46
|
try {
|
|
@@ -56,7 +58,7 @@ export function readStatuslineData() {
|
|
|
56
58
|
if (!db)
|
|
57
59
|
return EMPTY;
|
|
58
60
|
}
|
|
59
|
-
return queryStatusline(db);
|
|
61
|
+
return queryStatusline(db, projectDir);
|
|
60
62
|
}
|
|
61
63
|
catch {
|
|
62
64
|
return EMPTY;
|
|
@@ -70,12 +72,23 @@ export function readStatuslineData() {
|
|
|
70
72
|
}
|
|
71
73
|
}
|
|
72
74
|
}
|
|
73
|
-
function queryStatusline(db) {
|
|
75
|
+
function queryStatusline(db, projectDir) {
|
|
74
76
|
const data = { ...EMPTY };
|
|
75
77
|
// Each block is independently guarded: a missing/older table degrades that one
|
|
76
78
|
// segment to null rather than blanking the whole line.
|
|
77
79
|
try {
|
|
78
|
-
|
|
80
|
+
// Scope the verdict to the current workspace when we know it — otherwise the line
|
|
81
|
+
// shows the globally-newest debate, which may belong to a different project. When
|
|
82
|
+
// projectDir is provided we do NOT fall back to another project's verdict; the
|
|
83
|
+
// segment simply drops if this project has no council row yet.
|
|
84
|
+
// debated_at is an ISO string with millisecond resolution and `id` is a random
|
|
85
|
+
// UUID, so two debates recorded in the same millisecond have no ordering at all
|
|
86
|
+
// and SQLite is free to return either. Tie-break on rowid, which increments per
|
|
87
|
+
// insert, so "newest" always means the row written last.
|
|
88
|
+
const scoped = projectDir ? normalizeProjectDir(projectDir) : undefined;
|
|
89
|
+
const row = (scoped
|
|
90
|
+
? db.prepare('SELECT verdict FROM council_outcomes WHERE project_dir = ? ORDER BY debated_at DESC, rowid DESC LIMIT 1').get(scoped)
|
|
91
|
+
: db.prepare('SELECT verdict FROM council_outcomes ORDER BY debated_at DESC, rowid DESC LIMIT 1').get());
|
|
79
92
|
const v = (row?.verdict ?? '').toUpperCase();
|
|
80
93
|
if (v === 'GREEN' || v === 'YELLOW' || v === 'RED')
|
|
81
94
|
data.verdict = v;
|
|
@@ -171,6 +184,41 @@ export function parseClaudeInput(raw) {
|
|
|
171
184
|
export function parseClaudeContextPct(raw) {
|
|
172
185
|
return parseClaudeInput(raw).contextPct;
|
|
173
186
|
}
|
|
187
|
+
// Extract the active workspace directory from the stdin payload so the council verdict
|
|
188
|
+
// can be scoped to it. Prefers workspace.current_dir, then workspace.project_dir, then
|
|
189
|
+
// top-level cwd. Returns null (→ global verdict) for bad/empty JSON or a missing field.
|
|
190
|
+
export function parseClaudeCwd(raw) {
|
|
191
|
+
try {
|
|
192
|
+
const j = JSON.parse(raw);
|
|
193
|
+
const dir = j?.workspace?.current_dir ?? j?.workspace?.project_dir ?? j?.cwd;
|
|
194
|
+
return typeof dir === 'string' && dir.length > 0 ? dir : null;
|
|
195
|
+
}
|
|
196
|
+
catch {
|
|
197
|
+
return null;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
// Extract the live session's id + transcript path (+ workspace dir) from the stdin
|
|
201
|
+
// payload, for transcript-capture mapping. Returns null unless BOTH ids are present —
|
|
202
|
+
// so a Claude Code build that omits them (or bad/empty JSON) degrades to "no mapping"
|
|
203
|
+
// and capture later no-ops, rather than guessing.
|
|
204
|
+
export function parseClaudeSession(raw) {
|
|
205
|
+
try {
|
|
206
|
+
const j = JSON.parse(raw);
|
|
207
|
+
const sessionId = typeof j?.session_id === 'string' && j.session_id.length > 0 ? j.session_id : null;
|
|
208
|
+
const transcriptPath = typeof j?.transcript_path === 'string' && j.transcript_path.length > 0 ? j.transcript_path : null;
|
|
209
|
+
if (!sessionId || !transcriptPath)
|
|
210
|
+
return null;
|
|
211
|
+
const dir = j?.workspace?.current_dir ?? j?.workspace?.project_dir ?? j?.cwd;
|
|
212
|
+
return {
|
|
213
|
+
sessionId,
|
|
214
|
+
transcriptPath,
|
|
215
|
+
projectDir: typeof dir === 'string' && dir.length > 0 ? dir : null,
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
catch {
|
|
219
|
+
return null;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
174
222
|
// Read the stdin payload Claude Code sends. Crash-proof and never blocks the prompt:
|
|
175
223
|
// returns null immediately when run from a TTY (manual invocation) and bails after a
|
|
176
224
|
// short timeout if no data arrives. Claude Code closes stdin after writing, so the
|
|
@@ -207,16 +255,23 @@ function readStdinPayload(timeoutMs = 200) {
|
|
|
207
255
|
// raw payload Claude Code sent and the line we rendered, so you can diff the ACTUAL
|
|
208
256
|
// context_window.used_percentage against the displayed `ctx N%`. Never on by default.
|
|
209
257
|
export async function printStatusline(opts = {}, capturePath) {
|
|
258
|
+
// Read the live payload first so we know the active workspace before the DB read —
|
|
259
|
+
// that lets us scope the council verdict to the current project rather than showing
|
|
260
|
+
// the globally-newest debate (which may belong to another folder).
|
|
261
|
+
let raw = null;
|
|
262
|
+
try {
|
|
263
|
+
raw = await readStdinPayload();
|
|
264
|
+
}
|
|
265
|
+
catch { /* no live data */ }
|
|
266
|
+
const projectDir = raw ? parseClaudeCwd(raw) : null;
|
|
210
267
|
let data;
|
|
211
268
|
try {
|
|
212
|
-
data = readStatuslineData();
|
|
269
|
+
data = readStatuslineData(projectDir ?? undefined);
|
|
213
270
|
}
|
|
214
271
|
catch {
|
|
215
272
|
data = { ...EMPTY };
|
|
216
273
|
}
|
|
217
|
-
let raw = null;
|
|
218
274
|
try {
|
|
219
|
-
raw = await readStdinPayload();
|
|
220
275
|
if (raw)
|
|
221
276
|
data = { ...data, ...parseClaudeInput(raw) };
|
|
222
277
|
}
|
|
@@ -253,6 +308,36 @@ export async function printStatusline(opts = {}, capturePath) {
|
|
|
253
308
|
resolve();
|
|
254
309
|
}
|
|
255
310
|
});
|
|
311
|
+
// AFTER the line is flushed (so this never delays the prompt): fire-and-forget
|
|
312
|
+
// session-mapping write. Best-effort — see maybeRecordSessionMapping.
|
|
313
|
+
await maybeRecordSessionMapping(raw);
|
|
314
|
+
}
|
|
315
|
+
// The hot-path fire-and-forget mapping write, extracted so the gate is unit-testable
|
|
316
|
+
// without mocking stdin. Only writes when transcript capture is opted-in AND the
|
|
317
|
+
// payload carries both a session id and transcript path. Never throws; returns
|
|
318
|
+
// whether a mapping was recorded. Non-users pay only one config read and stop.
|
|
319
|
+
export async function maybeRecordSessionMapping(raw) {
|
|
320
|
+
if (!raw)
|
|
321
|
+
return false;
|
|
322
|
+
try {
|
|
323
|
+
const { isCaptureEnabled } = await import('../transcripts/config.js');
|
|
324
|
+
if (!isCaptureEnabled())
|
|
325
|
+
return false;
|
|
326
|
+
const ref = parseClaudeSession(raw);
|
|
327
|
+
if (!ref)
|
|
328
|
+
return false;
|
|
329
|
+
const { recordSessionMapping } = await import('../transcripts/mapping.js');
|
|
330
|
+
recordSessionMapping({
|
|
331
|
+
source: 'claude',
|
|
332
|
+
sourceSessionId: ref.sessionId,
|
|
333
|
+
transcriptPath: ref.transcriptPath,
|
|
334
|
+
projectDir: ref.projectDir,
|
|
335
|
+
});
|
|
336
|
+
return true;
|
|
337
|
+
}
|
|
338
|
+
catch {
|
|
339
|
+
return false; // mapping is best-effort; never affects the prompt
|
|
340
|
+
}
|
|
256
341
|
}
|
|
257
342
|
// Resolve the settings.json for a client. Only Claude Code exposes a documented
|
|
258
343
|
// `statusLine` command hook today; others are gated behind --client as a stretch.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statusline.js","sourceRoot":"","sources":["../../src/cli/statusline.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"statusline.js","sourceRoot":"","sources":["../../src/cli/statusline.ts"],"names":[],"mappings":"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"}
|