@neurcode-ai/cli 0.15.4 → 0.15.6

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.
@@ -1,20 +1,65 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CURSOR_GATE_SCHEMA_VERSION = void 0;
3
+ exports.MIN_CURSOR_GATE_CLI_VERSION = exports.CURSOR_GATE_SCHEMA_VERSION = void 0;
4
+ exports.readBundledCliVersion = readBundledCliVersion;
5
+ exports.buildCliVersionStaleWarning = buildCliVersionStaleWarning;
6
+ exports.emitCliVersionStaleWarning = emitCliVersionStaleWarning;
4
7
  exports.resolveCursorGateExitCode = resolveCursorGateExitCode;
5
8
  exports.evaluateCursorGate = evaluateCursorGate;
6
9
  exports.formatCursorGateCiErrors = formatCursorGateCiErrors;
10
+ exports.ensureHookPinnedCli = ensureHookPinnedCli;
7
11
  exports.installCursorGateHook = installCursorGateHook;
8
12
  exports.doctorCursorGateHook = doctorCursorGateHook;
9
13
  const node_crypto_1 = require("node:crypto");
10
14
  const node_fs_1 = require("node:fs");
11
15
  const node_path_1 = require("node:path");
12
16
  const node_child_process_1 = require("node:child_process");
17
+ const contracts_1 = require("@neurcode-ai/contracts");
13
18
  const governance_runtime_1 = require("@neurcode-ai/governance-runtime");
14
19
  const agent_guard_1 = require("./agent-guard");
15
20
  const v0_governance_1 = require("./v0-governance");
16
21
  const runtime_live_1 = require("./runtime-live");
17
22
  exports.CURSOR_GATE_SCHEMA_VERSION = 'neurcode.cursor-gate.v1';
23
+ exports.MIN_CURSOR_GATE_CLI_VERSION = '0.15.4';
24
+ function readBundledCliVersion() {
25
+ try {
26
+ const pkgPath = (0, node_path_1.join)(__dirname, '..', '..', 'package.json');
27
+ const pkg = JSON.parse((0, node_fs_1.readFileSync)(pkgPath, 'utf8'));
28
+ return pkg.version?.trim() || 'unknown';
29
+ }
30
+ catch {
31
+ return 'unknown';
32
+ }
33
+ }
34
+ /** Warn when the running CLI is too old for cursor gate (e.g. stale global @neurcode-ai/cli). */
35
+ function buildCliVersionStaleWarning(options) {
36
+ const expectedVersion = readBundledCliVersion();
37
+ const runningVersion = options?.runningVersionOverride?.trim() || expectedVersion;
38
+ const minimumVersion = options?.minimumVersion?.trim() || exports.MIN_CURSOR_GATE_CLI_VERSION;
39
+ const meetsMinimum = (0, contracts_1.isSemverAtLeast)(runningVersion, minimumVersion);
40
+ if (meetsMinimum !== false)
41
+ return null;
42
+ return {
43
+ id: 'cli_version_stale',
44
+ status: 'warn',
45
+ runningVersion,
46
+ expectedVersion,
47
+ minimumVersion,
48
+ message: `CLI ${runningVersion} is older than ${minimumVersion}; cursor gate and enterprise hooks require @neurcode-ai/cli@${minimumVersion}+.`,
49
+ remediation: [
50
+ 'npm install -g @neurcode-ai/cli@latest',
51
+ 'npm exec --package=@neurcode-ai/cli@latest -- neurcode cursor gate --help',
52
+ ],
53
+ };
54
+ }
55
+ function emitCliVersionStaleWarning(warning, json) {
56
+ if (json)
57
+ return;
58
+ process.stderr.write(`⚠️ ${warning.message}\n`);
59
+ for (const step of warning.remediation) {
60
+ process.stderr.write(` ${step}\n`);
61
+ }
62
+ }
18
63
  function repoRelativeArtifactPath(repoRoot, artifactPath) {
19
64
  const root = repoRoot.replace(/\\/g, '/').replace(/\/+$/, '');
20
65
  const normalized = artifactPath.replace(/\\/g, '/');
@@ -217,11 +262,38 @@ function formatCursorGateCiErrors(payload) {
217
262
  }
218
263
  return lines;
219
264
  }
220
- const CURSOR_GATE_HOOK_SCRIPT = `#!/usr/bin/env bash
265
+ function hookPinnedCliDir(repoRoot) {
266
+ return (0, node_path_1.resolve)(repoRoot, '.neurcode', 'hooks-cli');
267
+ }
268
+ function hookPinnedCliPath(repoRoot) {
269
+ return (0, node_path_1.resolve)(hookPinnedCliDir(repoRoot), 'node_modules', '.bin', 'neurcode');
270
+ }
271
+ function ensureHookPinnedCli(repoRoot) {
272
+ const cliDir = hookPinnedCliDir(repoRoot);
273
+ const cliPath = hookPinnedCliPath(repoRoot);
274
+ if ((0, node_fs_1.existsSync)(cliPath)) {
275
+ return { ok: true, cliPath, message: `Pinned hook CLI present at ${cliPath}` };
276
+ }
277
+ (0, node_fs_1.mkdirSync)(cliDir, { recursive: true });
278
+ const install = (0, node_child_process_1.spawnSync)('npm', ['install', '--prefix', cliDir, '--silent', '--no-save', `@neurcode-ai/cli@${exports.MIN_CURSOR_GATE_CLI_VERSION}`], { cwd: repoRoot, encoding: 'utf8', stdio: ['ignore', 'pipe', 'pipe'] });
279
+ if (install.status !== 0 || !(0, node_fs_1.existsSync)(cliPath)) {
280
+ return {
281
+ ok: false,
282
+ cliPath,
283
+ message: install.stderr?.trim() || install.stdout?.trim() || 'Failed to install pinned hook CLI.',
284
+ };
285
+ }
286
+ return { ok: true, cliPath, message: `Installed pinned hook CLI at ${cliPath}` };
287
+ }
288
+ function buildCursorGateHookScript(hookKind) {
289
+ const gitAction = hookKind === 'pre-push' ? 'push' : 'commit';
290
+ const blockedLabel = hookKind === 'pre-push' ? 'push' : 'commit';
291
+ const beforeAction = hookKind === 'pre-push' ? 'pushing' : 'committing';
292
+ return `#!/usr/bin/env bash
221
293
  set -euo pipefail
222
294
 
223
- # Neurcode Cursor fail-closed push gate (cooperative enforcement handoff).
224
- # Emergency bypass (audited): NEURCODE_CURSOR_GATE_SKIP=1 git push ...
295
+ # Neurcode Cursor fail-closed ${blockedLabel} gate (cooperative enforcement handoff).
296
+ # Emergency bypass (audited): NEURCODE_CURSOR_GATE_SKIP=1 git ${gitAction} ...
225
297
 
226
298
  if [[ "\${NEURCODE_CURSOR_GATE_SKIP:-0}" == "1" ]]; then
227
299
  echo "⚠️ NEURCODE_CURSOR_GATE_SKIP=1 — cursor gate bypassed (audited emergency only)." >&2
@@ -229,18 +301,21 @@ if [[ "\${NEURCODE_CURSOR_GATE_SKIP:-0}" == "1" ]]; then
229
301
  fi
230
302
 
231
303
  ROOT="\$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
232
- CLI=""
233
- if command -v neurcode >/dev/null 2>&1; then
234
- CLI="neurcode"
235
- elif command -v npx >/dev/null 2>&1; then
236
- CLI="npx @neurcode-ai/cli"
304
+ CLI=()
305
+ PINNED_CLI="\$ROOT/.neurcode/hooks-cli/node_modules/.bin/neurcode"
306
+ if [[ -x "\$PINNED_CLI" ]]; then
307
+ CLI=("\$PINNED_CLI")
308
+ elif [[ -n "\${NEURCODE_CLI:-}" && -x "\${NEURCODE_CLI}" ]]; then
309
+ CLI=("\${NEURCODE_CLI}")
310
+ elif command -v neurcode >/dev/null 2>&1 && neurcode cursor gate --help 2>&1 | grep -q 'Fail-closed'; then
311
+ CLI=(neurcode)
237
312
  else
238
- echo "❌ Neurcode cursor gate: neurcode CLI not found. Install @neurcode-ai/cli or set NEURCODE_CURSOR_GATE_SKIP=1." >&2
313
+ echo "❌ Neurcode cursor gate: neurcode CLI not found or too old (need @neurcode-ai/cli@${exports.MIN_CURSOR_GATE_CLI_VERSION}+). Run: neurcode cursor gate install --force" >&2
239
314
  exit 1
240
315
  fi
241
316
 
242
317
  set +e
243
- OUTPUT=\$($CLI cursor gate --dir "\$ROOT" --json 2>&1)
318
+ OUTPUT=\$("\${CLI[@]}" cursor gate --dir "\$ROOT" --json 2>&1)
244
319
  STATUS=\$?
245
320
  set -e
246
321
 
@@ -251,50 +326,58 @@ fi
251
326
  echo "\$OUTPUT" >&2
252
327
  cat >&2 <<'MSG'
253
328
 
254
- ❌ Neurcode cursor gate blocked this push.
329
+ ❌ Neurcode cursor gate blocked this ${blockedLabel}.
255
330
 
256
331
  Unverified or denied-but-changed writes were detected in the active guarded session.
257
- Finish the session, fix bypassed writes, or run agent checks before pushing.
332
+ Finish the session, fix bypassed writes, or run agent checks before ${beforeAction}.
258
333
 
259
334
  Remediation:
260
335
  neurcode agent guard status --fail-on-unverified --explain
261
336
  neurcode agent guard finish --fail-on-unverified
262
337
 
263
338
  Emergency bypass (audited):
264
- NEURCODE_CURSOR_GATE_SKIP=1 git push ...
339
+ NEURCODE_CURSOR_GATE_SKIP=1 git ${gitAction} ...
265
340
  MSG
266
341
  exit "\$STATUS"
267
342
  `;
343
+ }
268
344
  function runGit(args, cwd) {
269
345
  const result = (0, node_child_process_1.spawnSync)('git', args, { cwd, encoding: 'utf8', stdio: ['ignore', 'pipe', 'pipe'] });
270
346
  return { stdout: result.stdout || '', stderr: result.stderr || '', status: result.status ?? 1 };
271
347
  }
272
- function installCursorGateHook(input) {
273
- const repoRoot = (0, v0_governance_1.resolveRepoRoot)(input.dir || process.cwd());
274
- const hooksDir = (0, node_path_1.resolve)(repoRoot, '.githooks');
275
- const hookPath = (0, node_path_1.resolve)(hooksDir, 'pre-push');
276
- const neurcodeHookPath = (0, node_path_1.resolve)(repoRoot, '.neurcode', 'hooks', 'pre-push');
277
- (0, node_fs_1.mkdirSync)((0, node_path_1.resolve)(repoRoot, '.neurcode', 'hooks'), { recursive: true });
278
- (0, node_fs_1.writeFileSync)(neurcodeHookPath, CURSOR_GATE_HOOK_SCRIPT, 'utf8');
348
+ function resolveCursorGateHookKinds(hook) {
349
+ if (hook === 'both')
350
+ return ['pre-commit', 'pre-push'];
351
+ if (hook === 'pre-commit')
352
+ return ['pre-commit'];
353
+ return ['pre-push'];
354
+ }
355
+ function installSingleCursorGateHook(input) {
356
+ const hooksDir = (0, node_path_1.resolve)(input.repoRoot, '.githooks');
357
+ const hookPath = (0, node_path_1.resolve)(hooksDir, input.hookKind);
358
+ const neurcodeHookPath = (0, node_path_1.resolve)(input.repoRoot, '.neurcode', 'hooks', input.hookKind);
359
+ (0, node_fs_1.mkdirSync)((0, node_path_1.resolve)(input.repoRoot, '.neurcode', 'hooks'), { recursive: true });
360
+ (0, node_fs_1.writeFileSync)(neurcodeHookPath, buildCursorGateHookScript(input.hookKind), 'utf8');
279
361
  (0, node_fs_1.chmodSync)(neurcodeHookPath, 0o755);
280
362
  const marker = '# >>> neurcode-cursor-gate >>>';
281
363
  const existing = (0, node_fs_1.existsSync)(hookPath) ? (0, node_fs_1.readFileSync)(hookPath, 'utf8') : '';
282
364
  if (existing.includes(marker) && !input.force) {
283
- const hooksPathResult = runGit(['config', '--get', 'core.hooksPath'], repoRoot);
365
+ const hooksPathResult = runGit(['config', '--get', 'core.hooksPath'], input.repoRoot);
284
366
  const configured = hooksPathResult.status === 0 ? hooksPathResult.stdout.trim() : '';
285
367
  return {
286
368
  ok: true,
287
- repoRoot,
369
+ repoRoot: input.repoRoot,
288
370
  hooksPath: hooksDir,
371
+ hookKind: input.hookKind,
289
372
  hookPath,
290
373
  neurcodeHookPath,
291
374
  hooksPathConfigured: configured === '.githooks' || configured === hooksDir,
292
- message: 'Cursor gate hook already installed. Use --force to rewrite.',
375
+ message: `Cursor gate ${input.hookKind} hook already installed. Use --force to rewrite.`,
293
376
  };
294
377
  }
295
378
  (0, node_fs_1.mkdirSync)(hooksDir, { recursive: true });
296
379
  const fragment = `${marker}
297
- # Neurcode Cursor fail-closed push gate
380
+ # Neurcode Cursor fail-closed ${input.hookKind === 'pre-push' ? 'push' : 'commit'} gate
298
381
  exec "${neurcodeHookPath}"
299
382
  # <<< neurcode-cursor-gate <<<
300
383
  `;
@@ -303,89 +386,158 @@ exec "${neurcodeHookPath}"
303
386
  : `#!/usr/bin/env bash\nset -euo pipefail\n\n${fragment}`;
304
387
  (0, node_fs_1.writeFileSync)(hookPath, merged.endsWith('\n') ? merged : `${merged}\n`, 'utf8');
305
388
  (0, node_fs_1.chmodSync)(hookPath, 0o755);
306
- const setResult = runGit(['config', 'core.hooksPath', '.githooks'], repoRoot);
307
- if (setResult.status !== 0) {
308
- return {
309
- ok: false,
310
- repoRoot,
311
- hooksPath: hooksDir,
312
- hookPath,
313
- neurcodeHookPath,
314
- hooksPathConfigured: false,
315
- message: `Failed to set core.hooksPath: ${setResult.stderr || setResult.stdout}`,
316
- };
317
- }
318
389
  return {
319
390
  ok: true,
320
- repoRoot,
391
+ repoRoot: input.repoRoot,
321
392
  hooksPath: hooksDir,
393
+ hookKind: input.hookKind,
322
394
  hookPath,
323
395
  neurcodeHookPath,
324
- hooksPathConfigured: true,
325
- message: 'Installed Neurcode cursor gate pre-push hook.',
396
+ hooksPathConfigured: false,
397
+ message: `Installed Neurcode cursor gate ${input.hookKind} hook.`,
326
398
  };
327
399
  }
328
- function doctorCursorGateHook(input) {
400
+ function installCursorGateHook(input) {
329
401
  const repoRoot = (0, v0_governance_1.resolveRepoRoot)(input.dir || process.cwd());
402
+ const hookKinds = resolveCursorGateHookKinds(input.hook);
403
+ const pinnedCli = ensureHookPinnedCli(repoRoot);
404
+ const hooks = hookKinds.map((hookKind) => installSingleCursorGateHook({
405
+ repoRoot,
406
+ hookKind,
407
+ force: input.force,
408
+ }));
409
+ if (!pinnedCli.ok) {
410
+ for (const hook of hooks) {
411
+ hook.ok = false;
412
+ hook.message = `${hook.message} ${pinnedCli.message}`.trim();
413
+ }
414
+ }
415
+ const setResult = runGit(['config', 'core.hooksPath', '.githooks'], repoRoot);
416
+ const hooksPathConfigured = setResult.status === 0;
417
+ for (const hook of hooks) {
418
+ hook.hooksPathConfigured = hooksPathConfigured;
419
+ if (!hooksPathConfigured)
420
+ hook.ok = false;
421
+ }
422
+ const ok = hooksPathConfigured && hooks.every((hook) => hook.ok);
423
+ const label = hookKinds.length === 2
424
+ ? 'pre-commit and pre-push'
425
+ : hookKinds[0] === 'pre-commit'
426
+ ? 'pre-commit'
427
+ : 'pre-push';
428
+ return {
429
+ ok,
430
+ repoRoot,
431
+ hooksPath: (0, node_path_1.resolve)(repoRoot, '.githooks'),
432
+ hooks,
433
+ hooksPathConfigured,
434
+ message: hooksPathConfigured
435
+ ? `Installed Neurcode cursor gate ${label} hook${hookKinds.length > 1 ? 's' : ''}.`
436
+ : `Failed to set core.hooksPath: ${setResult.stderr || setResult.stdout}`,
437
+ };
438
+ }
439
+ function doctorCursorGateHookKind(repoRoot, hookKind, required) {
330
440
  const checks = [];
331
- const neurcodeHookPath = (0, node_path_1.resolve)(repoRoot, '.neurcode', 'hooks', 'pre-push');
332
- const hookPath = (0, node_path_1.resolve)(repoRoot, '.githooks', 'pre-push');
441
+ const neurcodeHookPath = (0, node_path_1.resolve)(repoRoot, '.neurcode', 'hooks', hookKind);
442
+ const hookPath = (0, node_path_1.resolve)(repoRoot, '.githooks', hookKind);
443
+ const prefix = hookKind.replace('-', '_');
444
+ const neurcodeExists = (0, node_fs_1.existsSync)(neurcodeHookPath);
445
+ const githookExists = (0, node_fs_1.existsSync)(hookPath);
446
+ const installed = neurcodeExists || githookExists;
447
+ if (!required && !installed) {
448
+ checks.push({
449
+ id: `${prefix}_optional`,
450
+ status: 'skip',
451
+ message: `${hookKind} hook not installed (optional unless --hook both).`,
452
+ });
453
+ return checks;
454
+ }
333
455
  checks.push({
334
- id: 'neurcode_hook_script',
335
- status: (0, node_fs_1.existsSync)(neurcodeHookPath) ? 'pass' : 'fail',
336
- message: (0, node_fs_1.existsSync)(neurcodeHookPath)
456
+ id: `neurcode_hook_script_${prefix}`,
457
+ status: neurcodeExists ? 'pass' : 'fail',
458
+ message: neurcodeExists
337
459
  ? `Found ${neurcodeHookPath}`
338
- : `Missing ${neurcodeHookPath}. Run: neurcode cursor gate install`,
460
+ : `Missing ${neurcodeHookPath}. Run: neurcode cursor gate install --hook ${hookKind}`,
339
461
  });
340
- if ((0, node_fs_1.existsSync)(neurcodeHookPath)) {
462
+ if (neurcodeExists) {
341
463
  try {
342
464
  const stat = (0, node_fs_1.statSync)(neurcodeHookPath);
343
465
  const executable = (stat.mode & 0o111) !== 0;
344
466
  checks.push({
345
- id: 'neurcode_hook_executable',
467
+ id: `neurcode_hook_executable_${prefix}`,
346
468
  status: executable ? 'pass' : 'fail',
347
- message: executable ? 'Hook script is executable' : 'Hook script is not executable',
469
+ message: executable
470
+ ? `${hookKind} hook script is executable`
471
+ : `${hookKind} hook script is not executable`,
348
472
  });
349
473
  }
350
474
  catch (error) {
351
475
  checks.push({
352
- id: 'neurcode_hook_executable',
476
+ id: `neurcode_hook_executable_${prefix}`,
353
477
  status: 'fail',
354
478
  message: error instanceof Error ? error.message : String(error),
355
479
  });
356
480
  }
357
481
  }
358
482
  checks.push({
359
- id: 'githooks_pre_push',
360
- status: (0, node_fs_1.existsSync)(hookPath) ? 'pass' : 'fail',
361
- message: (0, node_fs_1.existsSync)(hookPath)
483
+ id: `githooks_${prefix}`,
484
+ status: githookExists ? 'pass' : 'fail',
485
+ message: githookExists
362
486
  ? `Found ${hookPath}`
363
- : `Missing ${hookPath}. Run: neurcode cursor gate install`,
487
+ : `Missing ${hookPath}. Run: neurcode cursor gate install --hook ${hookKind}`,
364
488
  });
365
- if ((0, node_fs_1.existsSync)(hookPath)) {
489
+ if (githookExists) {
366
490
  const content = (0, node_fs_1.readFileSync)(hookPath, 'utf8');
367
491
  checks.push({
368
- id: 'githooks_fragment',
492
+ id: `githooks_fragment_${prefix}`,
369
493
  status: content.includes('neurcode-cursor-gate') ? 'pass' : 'fail',
370
494
  message: content.includes('neurcode-cursor-gate')
371
- ? 'pre-push delegates to Neurcode cursor gate'
372
- : 'pre-push missing neurcode-cursor-gate marker',
495
+ ? `${hookKind} delegates to Neurcode cursor gate`
496
+ : `${hookKind} missing neurcode-cursor-gate marker`,
373
497
  });
374
498
  }
499
+ return checks;
500
+ }
501
+ function doctorCursorGateHook(input) {
502
+ const repoRoot = (0, v0_governance_1.resolveRepoRoot)(input.dir || process.cwd());
503
+ const cliVersionWarning = buildCliVersionStaleWarning();
504
+ const prePushInstalled = (0, node_fs_1.existsSync)((0, node_path_1.resolve)(repoRoot, '.githooks', 'pre-push'))
505
+ || (0, node_fs_1.existsSync)((0, node_path_1.resolve)(repoRoot, '.neurcode', 'hooks', 'pre-push'));
506
+ const preCommitInstalled = (0, node_fs_1.existsSync)((0, node_path_1.resolve)(repoRoot, '.githooks', 'pre-commit'))
507
+ || (0, node_fs_1.existsSync)((0, node_path_1.resolve)(repoRoot, '.neurcode', 'hooks', 'pre-commit'));
508
+ const requirePreCommit = preCommitInstalled;
509
+ const requirePrePush = prePushInstalled || !preCommitInstalled;
510
+ const checks = [
511
+ ...doctorCursorGateHookKind(repoRoot, 'pre-push', requirePrePush),
512
+ ...doctorCursorGateHookKind(repoRoot, 'pre-commit', requirePreCommit),
513
+ ];
375
514
  const hooksPathResult = runGit(['config', '--get', 'core.hooksPath'], repoRoot);
376
515
  const configured = hooksPathResult.status === 0 ? hooksPathResult.stdout.trim() : '';
377
516
  const expected = '.githooks';
517
+ const hooksNeeded = prePushInstalled || preCommitInstalled;
378
518
  checks.push({
379
519
  id: 'core_hooks_path',
380
- status: configured === expected || configured === (0, node_path_1.resolve)(repoRoot, '.githooks') ? 'pass' : 'fail',
520
+ status: !hooksNeeded || configured === expected || configured === (0, node_path_1.resolve)(repoRoot, '.githooks')
521
+ ? 'pass'
522
+ : 'fail',
381
523
  message: configured
382
524
  ? `core.hooksPath=${configured}`
383
- : 'core.hooksPath is unset. Run: neurcode cursor gate install',
525
+ : hooksNeeded
526
+ ? 'core.hooksPath is unset. Run: neurcode cursor gate install'
527
+ : 'core.hooksPath is unset (no hooks installed yet).',
384
528
  });
529
+ if (cliVersionWarning) {
530
+ checks.push({
531
+ id: 'cli_version_stale',
532
+ status: 'fail',
533
+ message: cliVersionWarning.message,
534
+ });
535
+ }
385
536
  return {
386
537
  ok: checks.every((check) => check.status === 'pass'),
387
538
  checks,
388
539
  repoRoot,
540
+ cliVersionWarning,
389
541
  };
390
542
  }
391
543
  //# sourceMappingURL=cursor-gate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cursor-gate.js","sourceRoot":"","sources":["../../src/utils/cursor-gate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cursor-gate.js","sourceRoot":"","sources":["../../src/utils/cursor-gate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import { type GovernanceSession } from '@neurcode-ai/governance-runtime';
2
+ export declare const SESSION_SCOPE_RULES_RELATIVE: ".cursor/rules/neurcode-session-scope.mdc";
3
+ export declare const STRICT_CURSOR_RULES_MARKER = "neurcode-enterprise-strict-mode";
4
+ export interface SessionScopeRulesResult {
5
+ ok: boolean;
6
+ filePath: string;
7
+ sessionId: string | null;
8
+ allowedGlobs: string[];
9
+ message: string;
10
+ }
11
+ export interface StrictCursorRulesResult {
12
+ ok: boolean;
13
+ filePath: string;
14
+ message: string;
15
+ }
16
+ export declare function buildSessionScopeRulesBody(session: GovernanceSession): string;
17
+ export declare function writeSessionScopeRules(input: {
18
+ repoRoot: string;
19
+ session: GovernanceSession;
20
+ }): SessionScopeRulesResult;
21
+ export declare function refreshSessionScopeRules(input: {
22
+ dir?: string;
23
+ sessionId?: string;
24
+ }): SessionScopeRulesResult;
25
+ export declare function writeStrictCursorRules(input: {
26
+ repoRoot: string;
27
+ }): StrictCursorRulesResult;
28
+ export declare function listStrictOnboardArtifacts(repoRoot: string): string[];
29
+ //# sourceMappingURL=session-allowlist-rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-allowlist-rules.d.ts","sourceRoot":"","sources":["../../src/utils/session-allowlist-rules.ts"],"names":[],"mappings":"AAEA,OAAO,EAAkC,KAAK,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAGzG,eAAO,MAAM,4BAA4B,EAAG,0CAAmD,CAAC;AAChG,eAAO,MAAM,0BAA0B,oCAAoC,CAAC;AAE5E,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAcD,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CA0B7E;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,iBAAiB,CAAC;CAC5B,GAAG,uBAAuB,CAY1B;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,uBAAuB,CAe1B;AAgBD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,uBAAuB,CAoB3F;AAED,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAWrE"}
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.STRICT_CURSOR_RULES_MARKER = exports.SESSION_SCOPE_RULES_RELATIVE = void 0;
4
+ exports.buildSessionScopeRulesBody = buildSessionScopeRulesBody;
5
+ exports.writeSessionScopeRules = writeSessionScopeRules;
6
+ exports.refreshSessionScopeRules = refreshSessionScopeRules;
7
+ exports.writeStrictCursorRules = writeStrictCursorRules;
8
+ exports.listStrictOnboardArtifacts = listStrictOnboardArtifacts;
9
+ const node_fs_1 = require("node:fs");
10
+ const node_path_1 = require("node:path");
11
+ const governance_runtime_1 = require("@neurcode-ai/governance-runtime");
12
+ const v0_governance_1 = require("./v0-governance");
13
+ exports.SESSION_SCOPE_RULES_RELATIVE = '.cursor/rules/neurcode-session-scope.mdc';
14
+ exports.STRICT_CURSOR_RULES_MARKER = 'neurcode-enterprise-strict-mode';
15
+ function ensureParent(path) {
16
+ (0, node_fs_1.mkdirSync)((0, node_path_1.join)(path, '..'), { recursive: true });
17
+ }
18
+ function planTargetLines(session) {
19
+ const plan = session.contract.agentPlan;
20
+ if (!plan)
21
+ return [];
22
+ const files = (plan.expectedFiles ?? []).slice(0, 20).map((path) => `- \`${path}\` (file)`);
23
+ const globs = (plan.expectedGlobs ?? []).slice(0, 20).map((glob) => `- \`${glob}\` (glob)`);
24
+ return [...files, ...globs];
25
+ }
26
+ function buildSessionScopeRulesBody(session) {
27
+ const globs = session.contract.allowedGlobs.slice(0, 50);
28
+ const planLines = planTargetLines(session);
29
+ return `---
30
+ description: Neurcode active session scope (auto-generated — do not edit manually)
31
+ globs:
32
+ - "**/*"
33
+ alwaysApply: true
34
+ ---
35
+
36
+ # Neurcode session scope (${session.sessionId})
37
+
38
+ **Goal:** ${session.contract.goal.trim() || '(none)'}
39
+
40
+ **Scope mode:** ${session.contract.scopeMode}
41
+
42
+ ## In-scope path globs
43
+
44
+ ${globs.length > 0 ? globs.map((glob) => `- \`${glob}\``).join('\n') : '- _(no allowed globs derived — approval-required boundaries still apply)_'}
45
+
46
+ ${planLines.length > 0 ? `## Plan-declared targets\n\n${planLines.join('\n')}\n` : ''}
47
+ ## Drift rule
48
+
49
+ Do **not** edit files outside the in-scope globs above without an explicit \`neurcode agent amend\` / replan.
50
+ Neighbor paths and approval-required boundaries remain blocked even when a nearby path was approved.
51
+ `;
52
+ }
53
+ function writeSessionScopeRules(input) {
54
+ const filePath = (0, node_path_1.join)(input.repoRoot, exports.SESSION_SCOPE_RULES_RELATIVE);
55
+ ensureParent(filePath);
56
+ const body = buildSessionScopeRulesBody(input.session);
57
+ (0, node_fs_1.writeFileSync)(filePath, body.endsWith('\n') ? body : `${body}\n`, 'utf8');
58
+ return {
59
+ ok: true,
60
+ filePath,
61
+ sessionId: input.session.sessionId,
62
+ allowedGlobs: input.session.contract.allowedGlobs,
63
+ message: `Wrote session scope rules to ${exports.SESSION_SCOPE_RULES_RELATIVE}.`,
64
+ };
65
+ }
66
+ function refreshSessionScopeRules(input) {
67
+ const repoRoot = (0, v0_governance_1.resolveRepoRoot)(input.dir || process.cwd());
68
+ const session = input.sessionId
69
+ ? (0, governance_runtime_1.loadSession)(repoRoot, input.sessionId)
70
+ : (0, governance_runtime_1.loadActiveSession)(repoRoot);
71
+ if (!session) {
72
+ return {
73
+ ok: false,
74
+ filePath: (0, node_path_1.join)(repoRoot, exports.SESSION_SCOPE_RULES_RELATIVE),
75
+ sessionId: null,
76
+ allowedGlobs: [],
77
+ message: 'No active governed session found. Start one with neurcode cursor onboard or agent guard start.',
78
+ };
79
+ }
80
+ return writeSessionScopeRules({ repoRoot, session });
81
+ }
82
+ const STRICT_RULES_BODY = `
83
+ <!-- ${exports.STRICT_CURSOR_RULES_MARKER} -->
84
+
85
+ ## Enterprise strict mode (mandatory)
86
+
87
+ - **Before EVERY proposed file write:** call \`neurcode_agent_edit_before\` (MCP \`edit.before\`) — no exceptions.
88
+ - **Before commit, push, or merge:** run \`neurcode cursor gate\` — exit **0** required for handoff; exit **2** means fix bypassed writes first.
89
+ - **Pre-commit and pre-push hooks** run the gate automatically. Emergency bypass only: \`NEURCODE_CURSOR_GATE_SKIP=1\` (audited).
90
+ - **Session scope:** obey \`.cursor/rules/neurcode-session-scope.mdc\`; replan before editing outside declared globs.
91
+ - **Finish:** \`neurcode agent guard finish --fail-on-unverified\` after gate is clean.
92
+
93
+ Cursor does **not** provide Claude-style hard pre-write deny — cooperative checks plus fail-closed handoff are the enterprise contract.
94
+ `.trim();
95
+ function writeStrictCursorRules(input) {
96
+ const filePath = (0, node_path_1.join)(input.repoRoot, '.cursor', 'rules', 'neurcode.mdc');
97
+ ensureParent(filePath);
98
+ const existing = (0, node_fs_1.existsSync)(filePath) ? (0, node_fs_1.readFileSync)(filePath, 'utf8') : '';
99
+ if (existing.includes(exports.STRICT_CURSOR_RULES_MARKER)) {
100
+ return {
101
+ ok: true,
102
+ filePath,
103
+ message: 'Strict enterprise rules already present in neurcode.mdc.',
104
+ };
105
+ }
106
+ const merged = existing.trim()
107
+ ? `${existing.trimEnd()}\n\n${STRICT_RULES_BODY}\n`
108
+ : `${STRICT_RULES_BODY}\n`;
109
+ (0, node_fs_1.writeFileSync)(filePath, merged, 'utf8');
110
+ return {
111
+ ok: true,
112
+ filePath,
113
+ message: 'Appended enterprise strict-mode rules to neurcode.mdc.',
114
+ };
115
+ }
116
+ function listStrictOnboardArtifacts(repoRoot) {
117
+ const artifacts = [
118
+ '.cursor/mcp.json',
119
+ '.cursor/rules/neurcode.mdc',
120
+ exports.SESSION_SCOPE_RULES_RELATIVE,
121
+ '.githooks/pre-commit',
122
+ '.githooks/pre-push',
123
+ '.neurcode/hooks/pre-commit',
124
+ '.neurcode/hooks/pre-push',
125
+ ];
126
+ return artifacts.filter((relative) => (0, node_fs_1.existsSync)((0, node_path_1.join)(repoRoot, relative)));
127
+ }
128
+ //# sourceMappingURL=session-allowlist-rules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-allowlist-rules.js","sourceRoot":"","sources":["../../src/utils/session-allowlist-rules.ts"],"names":[],"mappings":"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"}