@neurcode-ai/cli 0.9.26 → 0.9.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/allow.d.ts.map +1 -1
- package/dist/commands/allow.js +5 -19
- package/dist/commands/allow.js.map +1 -1
- package/dist/commands/apply.d.ts +1 -0
- package/dist/commands/apply.d.ts.map +1 -1
- package/dist/commands/apply.js +105 -46
- package/dist/commands/apply.js.map +1 -1
- package/dist/commands/ask.d.ts.map +1 -1
- package/dist/commands/ask.js +1849 -1783
- package/dist/commands/ask.js.map +1 -1
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +83 -24
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/plan.d.ts +4 -0
- package/dist/commands/plan.d.ts.map +1 -1
- package/dist/commands/plan.js +344 -48
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/policy.d.ts.map +1 -1
- package/dist/commands/policy.js +629 -0
- package/dist/commands/policy.js.map +1 -1
- package/dist/commands/prompt.d.ts +7 -1
- package/dist/commands/prompt.d.ts.map +1 -1
- package/dist/commands/prompt.js +106 -25
- package/dist/commands/prompt.js.map +1 -1
- package/dist/commands/ship.d.ts +32 -0
- package/dist/commands/ship.d.ts.map +1 -1
- package/dist/commands/ship.js +1404 -75
- package/dist/commands/ship.js.map +1 -1
- package/dist/commands/verify.d.ts +6 -0
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +527 -102
- package/dist/commands/verify.js.map +1 -1
- package/dist/index.js +89 -3
- package/dist/index.js.map +1 -1
- package/dist/utils/custom-policy-rules.d.ts +21 -0
- package/dist/utils/custom-policy-rules.d.ts.map +1 -0
- package/dist/utils/custom-policy-rules.js +71 -0
- package/dist/utils/custom-policy-rules.js.map +1 -0
- package/dist/utils/plan-cache.d.ts.map +1 -1
- package/dist/utils/plan-cache.js +4 -0
- package/dist/utils/plan-cache.js.map +1 -1
- package/dist/utils/policy-audit.d.ts +29 -0
- package/dist/utils/policy-audit.d.ts.map +1 -0
- package/dist/utils/policy-audit.js +208 -0
- package/dist/utils/policy-audit.js.map +1 -0
- package/dist/utils/policy-exceptions.d.ts +96 -0
- package/dist/utils/policy-exceptions.d.ts.map +1 -0
- package/dist/utils/policy-exceptions.js +389 -0
- package/dist/utils/policy-exceptions.js.map +1 -0
- package/dist/utils/policy-governance.d.ts +24 -0
- package/dist/utils/policy-governance.d.ts.map +1 -0
- package/dist/utils/policy-governance.js +124 -0
- package/dist/utils/policy-governance.js.map +1 -0
- package/dist/utils/policy-packs.d.ts +72 -1
- package/dist/utils/policy-packs.d.ts.map +1 -1
- package/dist/utils/policy-packs.js +285 -0
- package/dist/utils/policy-packs.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-packs.d.ts","sourceRoot":"","sources":["../../src/utils/policy-packs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"policy-packs.d.ts","sourceRoot":"","sources":["../../src/utils/policy-packs.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,9 +6,18 @@ exports.readInstalledPolicyPack = readInstalledPolicyPack;
|
|
|
6
6
|
exports.installPolicyPack = installPolicyPack;
|
|
7
7
|
exports.uninstallPolicyPack = uninstallPolicyPack;
|
|
8
8
|
exports.getInstalledPolicyPackRules = getInstalledPolicyPackRules;
|
|
9
|
+
exports.getPolicyLockPath = getPolicyLockPath;
|
|
10
|
+
exports.readPolicyLockFile = readPolicyLockFile;
|
|
11
|
+
exports.writePolicyLockFile = writePolicyLockFile;
|
|
12
|
+
exports.buildPolicyStateSnapshot = buildPolicyStateSnapshot;
|
|
13
|
+
exports.comparePolicyStateToLock = comparePolicyStateToLock;
|
|
14
|
+
exports.evaluatePolicyLock = evaluatePolicyLock;
|
|
15
|
+
const crypto_1 = require("crypto");
|
|
9
16
|
const fs_1 = require("fs");
|
|
10
17
|
const path_1 = require("path");
|
|
18
|
+
const policy_engine_1 = require("@neurcode-ai/policy-engine");
|
|
11
19
|
const ACTIVE_PACK_PATH = ['.neurcode', 'policies', 'policy-pack.active.json'];
|
|
20
|
+
const POLICY_LOCK_FILENAME = 'neurcode.policy.lock.json';
|
|
12
21
|
function withPackPrefix(packId, rules) {
|
|
13
22
|
return rules.map((rule) => ({
|
|
14
23
|
...rule,
|
|
@@ -274,4 +283,280 @@ function getInstalledPolicyPackRules(cwd) {
|
|
|
274
283
|
rules: installed.rules,
|
|
275
284
|
};
|
|
276
285
|
}
|
|
286
|
+
function sha256Hex(input) {
|
|
287
|
+
return (0, crypto_1.createHash)('sha256').update(input, 'utf-8').digest('hex');
|
|
288
|
+
}
|
|
289
|
+
function normalizeForHash(value) {
|
|
290
|
+
if (value === null || typeof value !== 'object') {
|
|
291
|
+
return value;
|
|
292
|
+
}
|
|
293
|
+
if (Array.isArray(value)) {
|
|
294
|
+
return value.map((item) => normalizeForHash(item));
|
|
295
|
+
}
|
|
296
|
+
const record = value;
|
|
297
|
+
const out = {};
|
|
298
|
+
for (const key of Object.keys(record).sort()) {
|
|
299
|
+
const current = record[key];
|
|
300
|
+
if (typeof current === 'undefined')
|
|
301
|
+
continue;
|
|
302
|
+
out[key] = normalizeForHash(current);
|
|
303
|
+
}
|
|
304
|
+
return out;
|
|
305
|
+
}
|
|
306
|
+
function fingerprintJson(value) {
|
|
307
|
+
return sha256Hex(JSON.stringify(normalizeForHash(value)));
|
|
308
|
+
}
|
|
309
|
+
function normalizedRuleId(value) {
|
|
310
|
+
if (!value || typeof value !== 'object') {
|
|
311
|
+
return '';
|
|
312
|
+
}
|
|
313
|
+
const id = value.id;
|
|
314
|
+
return typeof id === 'string' ? id : '';
|
|
315
|
+
}
|
|
316
|
+
function fingerprintRules(rules) {
|
|
317
|
+
const normalized = rules
|
|
318
|
+
.map((rule) => normalizeForHash(rule))
|
|
319
|
+
.sort((left, right) => {
|
|
320
|
+
const leftId = normalizedRuleId(left);
|
|
321
|
+
const rightId = normalizedRuleId(right);
|
|
322
|
+
if (leftId !== rightId) {
|
|
323
|
+
return leftId.localeCompare(rightId);
|
|
324
|
+
}
|
|
325
|
+
return JSON.stringify(left).localeCompare(JSON.stringify(right));
|
|
326
|
+
});
|
|
327
|
+
return fingerprintJson(normalized);
|
|
328
|
+
}
|
|
329
|
+
function buildCustomPolicyRefs(customPolicies) {
|
|
330
|
+
const refs = customPolicies.map((policy) => ({
|
|
331
|
+
id: policy.id,
|
|
332
|
+
severity: policy.severity,
|
|
333
|
+
updatedAt: policy.updated_at,
|
|
334
|
+
ruleTextHash: sha256Hex(policy.rule_text.trim()),
|
|
335
|
+
}));
|
|
336
|
+
refs.sort((left, right) => {
|
|
337
|
+
if (left.id !== right.id) {
|
|
338
|
+
return left.id.localeCompare(right.id);
|
|
339
|
+
}
|
|
340
|
+
return left.updatedAt.localeCompare(right.updatedAt);
|
|
341
|
+
});
|
|
342
|
+
return refs;
|
|
343
|
+
}
|
|
344
|
+
function getPolicyLockPath(cwd) {
|
|
345
|
+
return (0, path_1.join)(cwd, POLICY_LOCK_FILENAME);
|
|
346
|
+
}
|
|
347
|
+
function isPolicyLockFileShape(value) {
|
|
348
|
+
if (!value || typeof value !== 'object') {
|
|
349
|
+
return false;
|
|
350
|
+
}
|
|
351
|
+
const record = value;
|
|
352
|
+
if (record.schemaVersion !== 1 || typeof record.generatedAt !== 'string') {
|
|
353
|
+
return false;
|
|
354
|
+
}
|
|
355
|
+
const defaultRules = record.defaultRules;
|
|
356
|
+
if (!defaultRules ||
|
|
357
|
+
typeof defaultRules.count !== 'number' ||
|
|
358
|
+
typeof defaultRules.fingerprint !== 'string') {
|
|
359
|
+
return false;
|
|
360
|
+
}
|
|
361
|
+
const customPolicies = record.customPolicies;
|
|
362
|
+
if (!customPolicies) {
|
|
363
|
+
return false;
|
|
364
|
+
}
|
|
365
|
+
if ((customPolicies.mode !== 'dashboard' && customPolicies.mode !== 'disabled') ||
|
|
366
|
+
typeof customPolicies.count !== 'number' ||
|
|
367
|
+
typeof customPolicies.fingerprint !== 'string' ||
|
|
368
|
+
typeof customPolicies.mappedRuleCount !== 'number' ||
|
|
369
|
+
typeof customPolicies.mappedRulesFingerprint !== 'string' ||
|
|
370
|
+
!Array.isArray(customPolicies.refs)) {
|
|
371
|
+
return false;
|
|
372
|
+
}
|
|
373
|
+
const effective = record.effective;
|
|
374
|
+
if (!effective || typeof effective.ruleCount !== 'number' || typeof effective.fingerprint !== 'string') {
|
|
375
|
+
return false;
|
|
376
|
+
}
|
|
377
|
+
const pack = record.policyPack;
|
|
378
|
+
if (pack === null) {
|
|
379
|
+
return true;
|
|
380
|
+
}
|
|
381
|
+
if (!pack || typeof pack !== 'object') {
|
|
382
|
+
return false;
|
|
383
|
+
}
|
|
384
|
+
const policyPack = pack;
|
|
385
|
+
return (typeof policyPack.id === 'string' &&
|
|
386
|
+
typeof policyPack.name === 'string' &&
|
|
387
|
+
typeof policyPack.version === 'string' &&
|
|
388
|
+
typeof policyPack.ruleCount === 'number' &&
|
|
389
|
+
typeof policyPack.fingerprint === 'string');
|
|
390
|
+
}
|
|
391
|
+
function readPolicyLockFile(cwd) {
|
|
392
|
+
const path = getPolicyLockPath(cwd);
|
|
393
|
+
if (!(0, fs_1.existsSync)(path)) {
|
|
394
|
+
return {
|
|
395
|
+
path,
|
|
396
|
+
exists: false,
|
|
397
|
+
lock: null,
|
|
398
|
+
};
|
|
399
|
+
}
|
|
400
|
+
try {
|
|
401
|
+
const raw = (0, fs_1.readFileSync)(path, 'utf-8');
|
|
402
|
+
const parsed = JSON.parse(raw);
|
|
403
|
+
if (!isPolicyLockFileShape(parsed)) {
|
|
404
|
+
return {
|
|
405
|
+
path,
|
|
406
|
+
exists: true,
|
|
407
|
+
lock: null,
|
|
408
|
+
error: 'Invalid lock schema',
|
|
409
|
+
};
|
|
410
|
+
}
|
|
411
|
+
return {
|
|
412
|
+
path,
|
|
413
|
+
exists: true,
|
|
414
|
+
lock: parsed,
|
|
415
|
+
};
|
|
416
|
+
}
|
|
417
|
+
catch (error) {
|
|
418
|
+
return {
|
|
419
|
+
path,
|
|
420
|
+
exists: true,
|
|
421
|
+
lock: null,
|
|
422
|
+
error: error instanceof Error ? error.message : 'Failed to parse lock file',
|
|
423
|
+
};
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
function writePolicyLockFile(cwd, lock) {
|
|
427
|
+
const path = getPolicyLockPath(cwd);
|
|
428
|
+
(0, fs_1.writeFileSync)(path, JSON.stringify(lock, null, 2) + '\n', 'utf-8');
|
|
429
|
+
return path;
|
|
430
|
+
}
|
|
431
|
+
function buildPolicyStateSnapshot(input) {
|
|
432
|
+
const defaultRules = (0, policy_engine_1.createDefaultPolicy)().rules;
|
|
433
|
+
const policyPackRules = input.policyPackRules || [];
|
|
434
|
+
const includeDashboardPolicies = input.includeDashboardPolicies === true;
|
|
435
|
+
const customRules = includeDashboardPolicies ? input.customRules || [] : [];
|
|
436
|
+
const customPolicyRefs = includeDashboardPolicies ? buildCustomPolicyRefs(input.customPolicies || []) : [];
|
|
437
|
+
const effectiveRules = [...defaultRules, ...policyPackRules, ...customRules];
|
|
438
|
+
return {
|
|
439
|
+
schemaVersion: 1,
|
|
440
|
+
generatedAt: input.generatedAt || new Date().toISOString(),
|
|
441
|
+
defaultRules: {
|
|
442
|
+
count: defaultRules.length,
|
|
443
|
+
fingerprint: fingerprintRules(defaultRules),
|
|
444
|
+
},
|
|
445
|
+
policyPack: input.policyPack
|
|
446
|
+
? {
|
|
447
|
+
id: input.policyPack.packId,
|
|
448
|
+
name: input.policyPack.packName,
|
|
449
|
+
version: input.policyPack.version,
|
|
450
|
+
ruleCount: policyPackRules.length,
|
|
451
|
+
fingerprint: fingerprintRules(policyPackRules),
|
|
452
|
+
}
|
|
453
|
+
: null,
|
|
454
|
+
customPolicies: {
|
|
455
|
+
mode: includeDashboardPolicies ? 'dashboard' : 'disabled',
|
|
456
|
+
count: customPolicyRefs.length,
|
|
457
|
+
fingerprint: fingerprintJson(customPolicyRefs),
|
|
458
|
+
mappedRuleCount: customRules.length,
|
|
459
|
+
mappedRulesFingerprint: fingerprintRules(customRules),
|
|
460
|
+
refs: customPolicyRefs,
|
|
461
|
+
},
|
|
462
|
+
effective: {
|
|
463
|
+
ruleCount: effectiveRules.length,
|
|
464
|
+
fingerprint: fingerprintRules(effectiveRules),
|
|
465
|
+
},
|
|
466
|
+
};
|
|
467
|
+
}
|
|
468
|
+
function comparePolicyStateToLock(lock, current) {
|
|
469
|
+
const mismatches = [];
|
|
470
|
+
if (lock.customPolicies.mode !== current.customPolicies.mode) {
|
|
471
|
+
mismatches.push({
|
|
472
|
+
code: 'POLICY_LOCK_MODE_MISMATCH',
|
|
473
|
+
message: 'Custom policy mode does not match lock',
|
|
474
|
+
expected: lock.customPolicies.mode,
|
|
475
|
+
actual: current.customPolicies.mode,
|
|
476
|
+
});
|
|
477
|
+
}
|
|
478
|
+
const lockPack = lock.policyPack;
|
|
479
|
+
const currentPack = current.policyPack;
|
|
480
|
+
const lockPackRef = lockPack ? `${lockPack.id}@${lockPack.version}` : 'none';
|
|
481
|
+
const currentPackRef = currentPack ? `${currentPack.id}@${currentPack.version}` : 'none';
|
|
482
|
+
if (lockPackRef !== currentPackRef) {
|
|
483
|
+
mismatches.push({
|
|
484
|
+
code: 'POLICY_LOCK_PACK_MISMATCH',
|
|
485
|
+
message: 'Installed policy pack does not match lock',
|
|
486
|
+
expected: lockPackRef,
|
|
487
|
+
actual: currentPackRef,
|
|
488
|
+
});
|
|
489
|
+
}
|
|
490
|
+
else if (lockPack && currentPack && lockPack.fingerprint !== currentPack.fingerprint) {
|
|
491
|
+
mismatches.push({
|
|
492
|
+
code: 'POLICY_LOCK_PACK_MISMATCH',
|
|
493
|
+
message: 'Policy pack rules changed from lock baseline',
|
|
494
|
+
expected: lockPack.fingerprint,
|
|
495
|
+
actual: currentPack.fingerprint,
|
|
496
|
+
});
|
|
497
|
+
}
|
|
498
|
+
if (lock.defaultRules.fingerprint !== current.defaultRules.fingerprint) {
|
|
499
|
+
mismatches.push({
|
|
500
|
+
code: 'POLICY_LOCK_DEFAULT_RULES_MISMATCH',
|
|
501
|
+
message: 'Default policy rules fingerprint changed',
|
|
502
|
+
expected: lock.defaultRules.fingerprint,
|
|
503
|
+
actual: current.defaultRules.fingerprint,
|
|
504
|
+
});
|
|
505
|
+
}
|
|
506
|
+
if (lock.customPolicies.fingerprint !== current.customPolicies.fingerprint) {
|
|
507
|
+
mismatches.push({
|
|
508
|
+
code: 'POLICY_LOCK_CUSTOM_POLICIES_MISMATCH',
|
|
509
|
+
message: 'Dashboard custom policies changed from lock baseline',
|
|
510
|
+
expected: lock.customPolicies.fingerprint,
|
|
511
|
+
actual: current.customPolicies.fingerprint,
|
|
512
|
+
});
|
|
513
|
+
}
|
|
514
|
+
if (lock.customPolicies.mappedRulesFingerprint !== current.customPolicies.mappedRulesFingerprint) {
|
|
515
|
+
mismatches.push({
|
|
516
|
+
code: 'POLICY_LOCK_CUSTOM_RULES_MISMATCH',
|
|
517
|
+
message: 'Mapped custom policy rules changed from lock baseline',
|
|
518
|
+
expected: lock.customPolicies.mappedRulesFingerprint,
|
|
519
|
+
actual: current.customPolicies.mappedRulesFingerprint,
|
|
520
|
+
});
|
|
521
|
+
}
|
|
522
|
+
if (lock.effective.fingerprint !== current.effective.fingerprint) {
|
|
523
|
+
mismatches.push({
|
|
524
|
+
code: 'POLICY_LOCK_EFFECTIVE_RULES_MISMATCH',
|
|
525
|
+
message: 'Effective policy set changed from lock baseline',
|
|
526
|
+
expected: lock.effective.fingerprint,
|
|
527
|
+
actual: current.effective.fingerprint,
|
|
528
|
+
});
|
|
529
|
+
}
|
|
530
|
+
return mismatches;
|
|
531
|
+
}
|
|
532
|
+
function evaluatePolicyLock(cwd, current, options) {
|
|
533
|
+
const requireLock = options?.requireLock === true;
|
|
534
|
+
const read = readPolicyLockFile(cwd);
|
|
535
|
+
const mismatches = [];
|
|
536
|
+
if (read.error) {
|
|
537
|
+
mismatches.push({
|
|
538
|
+
code: 'POLICY_LOCK_INVALID',
|
|
539
|
+
message: `Policy lock file is invalid: ${read.error}`,
|
|
540
|
+
});
|
|
541
|
+
}
|
|
542
|
+
if (!read.lock && requireLock) {
|
|
543
|
+
mismatches.push({
|
|
544
|
+
code: 'POLICY_LOCK_MISSING',
|
|
545
|
+
message: 'Policy lock file is required but missing',
|
|
546
|
+
});
|
|
547
|
+
}
|
|
548
|
+
if (read.lock) {
|
|
549
|
+
mismatches.push(...comparePolicyStateToLock(read.lock, current));
|
|
550
|
+
}
|
|
551
|
+
const enforced = requireLock || read.exists;
|
|
552
|
+
return {
|
|
553
|
+
lockPath: read.path,
|
|
554
|
+
lockFileFound: read.exists,
|
|
555
|
+
lockPresent: read.lock !== null,
|
|
556
|
+
enforced,
|
|
557
|
+
matched: mismatches.length === 0,
|
|
558
|
+
mismatches,
|
|
559
|
+
lock: read.lock,
|
|
560
|
+
};
|
|
561
|
+
}
|
|
277
562
|
//# sourceMappingURL=policy-packs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-packs.js","sourceRoot":"","sources":["../../src/utils/policy-packs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"policy-packs.js","sourceRoot":"","sources":["../../src/utils/policy-packs.ts"],"names":[],"mappings":"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"}
|