@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":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/plan.d.ts
CHANGED
|
@@ -5,6 +5,10 @@ interface PlanOptions {
|
|
|
5
5
|
pr?: string;
|
|
6
6
|
mask?: boolean;
|
|
7
7
|
cache?: boolean;
|
|
8
|
+
json?: boolean;
|
|
9
|
+
snapshotMode?: 'auto' | 'full' | 'off';
|
|
10
|
+
snapshotMaxFiles?: number;
|
|
11
|
+
snapshotBudgetMs?: number;
|
|
8
12
|
}
|
|
9
13
|
export type IntentMode = 'implementation' | 'analysis';
|
|
10
14
|
export declare function detectIntentMode(intent: string): IntentMode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"AAwDA,UAAU,WAAW;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;IACvC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAsLD,MAAM,MAAM,UAAU,GAAG,gBAAgB,GAAG,UAAU,CAAC;AAEvD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAwB3D;AAiOD,wBAAsB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,iBA4mCrE"}
|
package/dist/commands/plan.js
CHANGED
|
@@ -37,6 +37,7 @@ exports.detectIntentMode = detectIntentMode;
|
|
|
37
37
|
exports.planCommand = planCommand;
|
|
38
38
|
const fs_1 = require("fs");
|
|
39
39
|
const path_1 = require("path");
|
|
40
|
+
const crypto_1 = require("crypto");
|
|
40
41
|
const config_1 = require("../config");
|
|
41
42
|
const api_client_1 = require("../api-client");
|
|
42
43
|
const project_detector_1 = require("../utils/project-detector");
|
|
@@ -267,6 +268,102 @@ function renderCacheMissReason(reason, bestIntentSimilarity) {
|
|
|
267
268
|
}
|
|
268
269
|
return reasonText[reason];
|
|
269
270
|
}
|
|
271
|
+
function hasPersistedPlanId(planId) {
|
|
272
|
+
return typeof planId === 'string' && planId.trim().length > 0 && planId !== 'unknown';
|
|
273
|
+
}
|
|
274
|
+
function toUnixPath(filePath) {
|
|
275
|
+
return filePath.replace(/\\/g, '/');
|
|
276
|
+
}
|
|
277
|
+
function parsePositiveInt(raw) {
|
|
278
|
+
if (!raw)
|
|
279
|
+
return null;
|
|
280
|
+
const parsed = Number(raw);
|
|
281
|
+
if (!Number.isFinite(parsed) || parsed <= 0)
|
|
282
|
+
return null;
|
|
283
|
+
return Math.floor(parsed);
|
|
284
|
+
}
|
|
285
|
+
function parseSnapshotMode(raw) {
|
|
286
|
+
if (!raw)
|
|
287
|
+
return null;
|
|
288
|
+
const normalized = raw.trim().toLowerCase();
|
|
289
|
+
if (normalized === 'auto' || normalized === 'full' || normalized === 'off') {
|
|
290
|
+
return normalized;
|
|
291
|
+
}
|
|
292
|
+
return null;
|
|
293
|
+
}
|
|
294
|
+
function resolveSnapshotMode(optionMode) {
|
|
295
|
+
if (process.env.NEURCODE_PLAN_SKIP_SNAPSHOTS === '1') {
|
|
296
|
+
return 'off';
|
|
297
|
+
}
|
|
298
|
+
const optionParsed = parseSnapshotMode(optionMode);
|
|
299
|
+
const envMode = parseSnapshotMode(process.env.NEURCODE_PLAN_SNAPSHOT_MODE);
|
|
300
|
+
return optionParsed || envMode || 'auto';
|
|
301
|
+
}
|
|
302
|
+
function resolveSnapshotMaxFiles(mode, optionValue) {
|
|
303
|
+
const envOverride = parsePositiveInt(process.env.NEURCODE_PLAN_SNAPSHOT_MAX_FILES);
|
|
304
|
+
const configured = optionValue && optionValue > 0 ? Math.floor(optionValue) : envOverride;
|
|
305
|
+
if (configured && configured > 0)
|
|
306
|
+
return configured;
|
|
307
|
+
return mode === 'full' ? 500 : 40;
|
|
308
|
+
}
|
|
309
|
+
function resolveSnapshotBudgetMs(mode, optionValue) {
|
|
310
|
+
const envOverride = parsePositiveInt(process.env.NEURCODE_PLAN_SNAPSHOT_BUDGET_MS);
|
|
311
|
+
const configured = optionValue && optionValue > 0 ? Math.floor(optionValue) : envOverride;
|
|
312
|
+
if (typeof configured === 'number' && configured > 0)
|
|
313
|
+
return configured;
|
|
314
|
+
return mode === 'full' ? 0 : 60_000;
|
|
315
|
+
}
|
|
316
|
+
function resolveSnapshotMaxBytes(mode) {
|
|
317
|
+
const envOverride = parsePositiveInt(process.env.NEURCODE_PLAN_SNAPSHOT_MAX_BYTES);
|
|
318
|
+
if (typeof envOverride === 'number' && envOverride > 0)
|
|
319
|
+
return envOverride;
|
|
320
|
+
return mode === 'full' ? 0 : 256 * 1024;
|
|
321
|
+
}
|
|
322
|
+
function getSnapshotManifestPath(projectRoot) {
|
|
323
|
+
return (0, path_1.join)(projectRoot, '.neurcode', 'snapshot-manifest.json');
|
|
324
|
+
}
|
|
325
|
+
function loadSnapshotManifest(projectRoot) {
|
|
326
|
+
const manifestPath = getSnapshotManifestPath(projectRoot);
|
|
327
|
+
if (!(0, fs_1.existsSync)(manifestPath)) {
|
|
328
|
+
return {
|
|
329
|
+
version: 1,
|
|
330
|
+
updatedAt: new Date().toISOString(),
|
|
331
|
+
entries: {},
|
|
332
|
+
};
|
|
333
|
+
}
|
|
334
|
+
try {
|
|
335
|
+
const parsed = JSON.parse((0, fs_1.readFileSync)(manifestPath, 'utf-8'));
|
|
336
|
+
if (parsed && parsed.version === 1 && parsed.entries && typeof parsed.entries === 'object') {
|
|
337
|
+
return {
|
|
338
|
+
version: 1,
|
|
339
|
+
updatedAt: typeof parsed.updatedAt === 'string' ? parsed.updatedAt : new Date().toISOString(),
|
|
340
|
+
entries: parsed.entries,
|
|
341
|
+
};
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
catch {
|
|
345
|
+
// Ignore manifest parse errors and start fresh.
|
|
346
|
+
}
|
|
347
|
+
return {
|
|
348
|
+
version: 1,
|
|
349
|
+
updatedAt: new Date().toISOString(),
|
|
350
|
+
entries: {},
|
|
351
|
+
};
|
|
352
|
+
}
|
|
353
|
+
function saveSnapshotManifest(projectRoot, manifest) {
|
|
354
|
+
const manifestPath = getSnapshotManifestPath(projectRoot);
|
|
355
|
+
const manifestDir = (0, path_1.join)(projectRoot, '.neurcode');
|
|
356
|
+
if (!(0, fs_1.existsSync)(manifestDir)) {
|
|
357
|
+
(0, fs_1.mkdirSync)(manifestDir, { recursive: true });
|
|
358
|
+
}
|
|
359
|
+
(0, fs_1.writeFileSync)(manifestPath, JSON.stringify(manifest, null, 2) + '\n', 'utf-8');
|
|
360
|
+
}
|
|
361
|
+
function computeSnapshotHash(content) {
|
|
362
|
+
return (0, crypto_1.createHash)('sha256').update(content, 'utf-8').digest('hex');
|
|
363
|
+
}
|
|
364
|
+
function emitPlanJson(payload) {
|
|
365
|
+
console.log(JSON.stringify(payload, null, 2));
|
|
366
|
+
}
|
|
270
367
|
function emitCachedPlanHit(input) {
|
|
271
368
|
if (input.touchKey) {
|
|
272
369
|
try {
|
|
@@ -283,14 +380,32 @@ function emitCachedPlanHit(input) {
|
|
|
283
380
|
else {
|
|
284
381
|
console.log(chalk.dim(`⚡ Using cached plan (created: ${createdAtLabel})\n`));
|
|
285
382
|
}
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
383
|
+
const persistedPlan = hasPersistedPlanId(input.response.planId);
|
|
384
|
+
if (input.jsonMode) {
|
|
385
|
+
emitPlanJson({
|
|
386
|
+
success: persistedPlan,
|
|
387
|
+
cached: true,
|
|
388
|
+
mode: input.intentMode,
|
|
389
|
+
planId: persistedPlan ? input.response.planId : null,
|
|
390
|
+
sessionId: input.response.sessionId || null,
|
|
391
|
+
projectId: input.projectId || null,
|
|
392
|
+
timestamp: input.response.timestamp,
|
|
393
|
+
message: persistedPlan
|
|
394
|
+
? `Using ${input.mode === 'near' ? 'near-' : ''}cached plan`
|
|
395
|
+
: 'Plan generated but could not be persisted (missing planId)',
|
|
396
|
+
plan: input.response.plan,
|
|
397
|
+
});
|
|
398
|
+
}
|
|
399
|
+
else {
|
|
400
|
+
displayPlan(input.response.plan);
|
|
401
|
+
console.log(chalk.dim(`\nGenerated at: ${new Date(input.response.timestamp).toLocaleString()} (cached)`));
|
|
402
|
+
if (persistedPlan) {
|
|
403
|
+
console.log(chalk.bold.cyan(`\n📌 Plan ID: ${input.response.planId} (Cached)`));
|
|
404
|
+
console.log(chalk.dim(' Run \'neurcode prompt\' to generate a Cursor/AI prompt.'));
|
|
405
|
+
}
|
|
291
406
|
}
|
|
292
407
|
try {
|
|
293
|
-
if (
|
|
408
|
+
if (persistedPlan) {
|
|
294
409
|
(0, state_1.setActivePlanId)(input.response.planId);
|
|
295
410
|
(0, state_1.setLastPlanGeneratedAt)(new Date().toISOString());
|
|
296
411
|
}
|
|
@@ -311,15 +426,47 @@ function emitCachedPlanHit(input) {
|
|
|
311
426
|
catch {
|
|
312
427
|
// ignore state write errors
|
|
313
428
|
}
|
|
429
|
+
return persistedPlan;
|
|
314
430
|
}
|
|
315
431
|
async function planCommand(intent, options) {
|
|
316
432
|
try {
|
|
317
433
|
if (!intent || !intent.trim()) {
|
|
434
|
+
if (options.json) {
|
|
435
|
+
emitPlanJson({
|
|
436
|
+
success: false,
|
|
437
|
+
cached: false,
|
|
438
|
+
mode: 'implementation',
|
|
439
|
+
planId: null,
|
|
440
|
+
sessionId: null,
|
|
441
|
+
projectId: options.projectId || null,
|
|
442
|
+
timestamp: new Date().toISOString(),
|
|
443
|
+
message: 'Intent cannot be empty',
|
|
444
|
+
});
|
|
445
|
+
}
|
|
318
446
|
console.error(chalk.red('❌ Error: Intent cannot be empty. What are you building?'));
|
|
319
447
|
console.log(chalk.dim('Usage: neurcode plan "<your intent description>"'));
|
|
320
448
|
console.log(chalk.dim('Example: neurcode plan "Add user authentication to login page"'));
|
|
321
449
|
process.exit(1);
|
|
322
450
|
}
|
|
451
|
+
if (options.snapshotMode) {
|
|
452
|
+
const parsedSnapshotMode = parseSnapshotMode(String(options.snapshotMode));
|
|
453
|
+
if (!parsedSnapshotMode) {
|
|
454
|
+
if (options.json) {
|
|
455
|
+
emitPlanJson({
|
|
456
|
+
success: false,
|
|
457
|
+
cached: false,
|
|
458
|
+
mode: 'implementation',
|
|
459
|
+
planId: null,
|
|
460
|
+
sessionId: null,
|
|
461
|
+
projectId: options.projectId || null,
|
|
462
|
+
timestamp: new Date().toISOString(),
|
|
463
|
+
message: `Invalid --snapshot-mode "${options.snapshotMode}". Expected: auto | full | off.`,
|
|
464
|
+
});
|
|
465
|
+
}
|
|
466
|
+
console.error(chalk.red(`❌ Invalid --snapshot-mode "${options.snapshotMode}". Expected: auto | full | off.`));
|
|
467
|
+
process.exit(1);
|
|
468
|
+
}
|
|
469
|
+
}
|
|
323
470
|
// Load configuration first (needed for TicketService)
|
|
324
471
|
const config = (0, config_1.loadConfig)();
|
|
325
472
|
// API URL is automatically set to production - no need to check
|
|
@@ -376,14 +523,18 @@ async function planCommand(intent, options) {
|
|
|
376
523
|
});
|
|
377
524
|
const cached = (0, plan_cache_1.readCachedPlan)(cwd, key);
|
|
378
525
|
if (cached) {
|
|
379
|
-
emitCachedPlanHit({
|
|
526
|
+
const persisted = emitCachedPlanHit({
|
|
380
527
|
cwd,
|
|
381
528
|
response: cached.response,
|
|
382
529
|
createdAt: cached.createdAt,
|
|
383
530
|
mode: 'exact',
|
|
384
531
|
orgId,
|
|
385
532
|
projectId: finalProjectIdEarly,
|
|
533
|
+
jsonMode: options.json === true,
|
|
534
|
+
intentMode,
|
|
386
535
|
});
|
|
536
|
+
if (!persisted)
|
|
537
|
+
process.exit(2);
|
|
387
538
|
return;
|
|
388
539
|
}
|
|
389
540
|
const near = (0, plan_cache_1.findNearCachedPlan)(cwd, {
|
|
@@ -398,7 +549,7 @@ async function planCommand(intent, options) {
|
|
|
398
549
|
minIntentSimilarity: nearIntentSimilarityFloor,
|
|
399
550
|
});
|
|
400
551
|
if (near) {
|
|
401
|
-
emitCachedPlanHit({
|
|
552
|
+
const persisted = emitCachedPlanHit({
|
|
402
553
|
cwd,
|
|
403
554
|
response: near.entry.response,
|
|
404
555
|
createdAt: near.entry.createdAt,
|
|
@@ -407,7 +558,11 @@ async function planCommand(intent, options) {
|
|
|
407
558
|
orgId,
|
|
408
559
|
projectId: finalProjectIdEarly,
|
|
409
560
|
touchKey: near.entry.key,
|
|
561
|
+
jsonMode: options.json === true,
|
|
562
|
+
intentMode,
|
|
410
563
|
});
|
|
564
|
+
if (!persisted)
|
|
565
|
+
process.exit(2);
|
|
411
566
|
return;
|
|
412
567
|
}
|
|
413
568
|
const miss = (0, plan_cache_1.diagnosePlanCacheMiss)(cwd, {
|
|
@@ -586,14 +741,18 @@ async function planCommand(intent, options) {
|
|
|
586
741
|
});
|
|
587
742
|
const cached = (0, plan_cache_1.readCachedPlan)(cwd, key);
|
|
588
743
|
if (cached) {
|
|
589
|
-
emitCachedPlanHit({
|
|
744
|
+
const persisted = emitCachedPlanHit({
|
|
590
745
|
cwd,
|
|
591
746
|
response: cached.response,
|
|
592
747
|
createdAt: cached.createdAt,
|
|
593
748
|
mode: 'exact',
|
|
594
749
|
orgId,
|
|
595
750
|
projectId: finalProjectIdForGuard,
|
|
751
|
+
jsonMode: options.json === true,
|
|
752
|
+
intentMode,
|
|
596
753
|
});
|
|
754
|
+
if (!persisted)
|
|
755
|
+
process.exit(2);
|
|
597
756
|
return;
|
|
598
757
|
}
|
|
599
758
|
const near = (0, plan_cache_1.findNearCachedPlan)(cwd, {
|
|
@@ -608,7 +767,7 @@ async function planCommand(intent, options) {
|
|
|
608
767
|
minIntentSimilarity: nearIntentSimilarityFloor,
|
|
609
768
|
});
|
|
610
769
|
if (near) {
|
|
611
|
-
emitCachedPlanHit({
|
|
770
|
+
const persisted = emitCachedPlanHit({
|
|
612
771
|
cwd,
|
|
613
772
|
response: near.entry.response,
|
|
614
773
|
createdAt: near.entry.createdAt,
|
|
@@ -617,7 +776,11 @@ async function planCommand(intent, options) {
|
|
|
617
776
|
orgId,
|
|
618
777
|
projectId: finalProjectIdForGuard,
|
|
619
778
|
touchKey: near.entry.key,
|
|
779
|
+
jsonMode: options.json === true,
|
|
780
|
+
intentMode,
|
|
620
781
|
});
|
|
782
|
+
if (!persisted)
|
|
783
|
+
process.exit(2);
|
|
621
784
|
return;
|
|
622
785
|
}
|
|
623
786
|
const miss = (0, plan_cache_1.diagnosePlanCacheMiss)(cwd, {
|
|
@@ -876,8 +1039,9 @@ async function planCommand(intent, options) {
|
|
|
876
1039
|
// Brain progression tracking should never block plan generation.
|
|
877
1040
|
}
|
|
878
1041
|
}
|
|
1042
|
+
const persistedPlanId = hasPersistedPlanId(response.planId);
|
|
879
1043
|
// Persist in local cache for instant repeat plans.
|
|
880
|
-
if (shouldUseCache && orgId && finalProjectIdForGuard) {
|
|
1044
|
+
if (persistedPlanId && shouldUseCache && orgId && finalProjectIdForGuard) {
|
|
881
1045
|
// Recompute repo fingerprint right before writing to cache so Neurcode-managed
|
|
882
1046
|
// housekeeping (e.g. `.neurcode/config.json`, `.gitignore` updates) doesn't
|
|
883
1047
|
// cause immediate cache misses on the next identical run.
|
|
@@ -918,60 +1082,149 @@ async function planCommand(intent, options) {
|
|
|
918
1082
|
if (orgId && finalProjectIdForGuard) {
|
|
919
1083
|
(0, neurcode_context_1.appendPlanToOrgProjectMemory)(cwd, orgId, finalProjectIdForGuard, intent, response);
|
|
920
1084
|
}
|
|
921
|
-
// Pre-
|
|
922
|
-
|
|
923
|
-
const
|
|
924
|
-
const
|
|
1085
|
+
// Pre-flight snapshots: capture current state for MODIFY targets.
|
|
1086
|
+
const modifyFiles = response.plan.files.filter((f) => f.action === 'MODIFY');
|
|
1087
|
+
const snapshotMode = resolveSnapshotMode(options.snapshotMode);
|
|
1088
|
+
const snapshotMaxFiles = resolveSnapshotMaxFiles(snapshotMode, options.snapshotMaxFiles);
|
|
1089
|
+
const snapshotBudgetMs = resolveSnapshotBudgetMs(snapshotMode, options.snapshotBudgetMs);
|
|
1090
|
+
const snapshotMaxBytes = resolveSnapshotMaxBytes(snapshotMode);
|
|
925
1091
|
if (isReadOnlyAnalysis) {
|
|
926
1092
|
console.log(chalk.dim('\n🔎 Analysis mode: skipping pre-flight file snapshots'));
|
|
927
1093
|
}
|
|
928
|
-
else if (
|
|
929
|
-
console.log(chalk.dim('\n⚡ Snapshot capture
|
|
1094
|
+
else if (snapshotMode === 'off') {
|
|
1095
|
+
console.log(chalk.dim('\n⚡ Snapshot capture disabled (snapshot mode: off)'));
|
|
930
1096
|
}
|
|
931
1097
|
else if (modifyFiles.length > 0) {
|
|
932
|
-
|
|
1098
|
+
const snapshotCandidates = modifyFiles.slice(0, snapshotMaxFiles);
|
|
1099
|
+
const cappedCount = Math.max(0, modifyFiles.length - snapshotCandidates.length);
|
|
1100
|
+
const snapshotConcurrency = Math.min(16, Math.max(1, parsePositiveInt(process.env.NEURCODE_PLAN_SNAPSHOT_CONCURRENCY) ?? (snapshotMode === 'full' ? 8 : 6)));
|
|
1101
|
+
const snapshotTimeoutMs = Math.max(1000, parsePositiveInt(process.env.NEURCODE_PLAN_SNAPSHOT_TIMEOUT_MS) ?? (snapshotMode === 'full' ? 15000 : 8000));
|
|
1102
|
+
const deadline = snapshotBudgetMs > 0 ? Date.now() + snapshotBudgetMs : 0;
|
|
1103
|
+
const forceResnapshot = process.env.NEURCODE_PLAN_SNAPSHOT_FORCE === '1';
|
|
1104
|
+
console.log(chalk.dim(`\n📸 Capturing pre-flight snapshots for ${snapshotCandidates.length}/${modifyFiles.length} file(s)` +
|
|
1105
|
+
` [mode=${snapshotMode}, concurrency=${snapshotConcurrency}` +
|
|
1106
|
+
`${snapshotBudgetMs > 0 ? `, budget=${snapshotBudgetMs}ms` : ', budget=unbounded'}]...`));
|
|
933
1107
|
let snapshotsSaved = 0;
|
|
934
1108
|
let snapshotsFailed = 0;
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
1109
|
+
let snapshotsSkippedMissing = 0;
|
|
1110
|
+
let snapshotsSkippedUnchanged = 0;
|
|
1111
|
+
let snapshotsSkippedLarge = 0;
|
|
1112
|
+
let snapshotsProcessed = 0;
|
|
1113
|
+
let budgetExhausted = false;
|
|
1114
|
+
const withTimeout = async (promise, timeoutMs) => {
|
|
1115
|
+
return await Promise.race([
|
|
1116
|
+
promise,
|
|
1117
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error(`snapshot timeout after ${timeoutMs}ms`)), timeoutMs)),
|
|
1118
|
+
]);
|
|
1119
|
+
};
|
|
1120
|
+
const manifest = loadSnapshotManifest(cwd);
|
|
1121
|
+
let manifestDirty = false;
|
|
1122
|
+
let cursor = 0;
|
|
1123
|
+
const workers = Array.from({ length: Math.min(snapshotConcurrency, snapshotCandidates.length) }, async () => {
|
|
1124
|
+
while (cursor < snapshotCandidates.length) {
|
|
1125
|
+
if (budgetExhausted)
|
|
1126
|
+
break;
|
|
1127
|
+
if (deadline > 0 && Date.now() >= deadline) {
|
|
1128
|
+
budgetExhausted = true;
|
|
1129
|
+
break;
|
|
943
1130
|
}
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
1131
|
+
const current = snapshotCandidates[cursor++];
|
|
1132
|
+
if (!current)
|
|
1133
|
+
break;
|
|
1134
|
+
snapshotsProcessed++;
|
|
1135
|
+
try {
|
|
1136
|
+
const normalizedPath = toUnixPath(current.path);
|
|
1137
|
+
const filePath = (0, path_1.resolve)(cwd, current.path);
|
|
1138
|
+
if (!(0, fs_1.existsSync)(filePath)) {
|
|
1139
|
+
snapshotsSkippedMissing++;
|
|
1140
|
+
if (process.env.DEBUG) {
|
|
1141
|
+
console.log(chalk.yellow(` ⚠️ Skipping ${current.path} (file not found locally)`));
|
|
1142
|
+
}
|
|
1143
|
+
continue;
|
|
1144
|
+
}
|
|
1145
|
+
const fileContent = (0, fs_1.readFileSync)(filePath, 'utf-8');
|
|
1146
|
+
const fileSize = Buffer.byteLength(fileContent, 'utf-8');
|
|
1147
|
+
if (snapshotMaxBytes > 0 && fileSize > snapshotMaxBytes) {
|
|
1148
|
+
snapshotsSkippedLarge++;
|
|
1149
|
+
if (process.env.DEBUG) {
|
|
1150
|
+
console.log(chalk.yellow(` ⚠️ Skipping ${current.path} (size ${fileSize}B > ${snapshotMaxBytes}B)`));
|
|
1151
|
+
}
|
|
1152
|
+
continue;
|
|
1153
|
+
}
|
|
1154
|
+
const fileHash = computeSnapshotHash(fileContent);
|
|
1155
|
+
const previous = manifest.entries[normalizedPath];
|
|
1156
|
+
if (snapshotMode === 'auto' &&
|
|
1157
|
+
!forceResnapshot &&
|
|
1158
|
+
previous &&
|
|
1159
|
+
previous.sha256 === fileHash &&
|
|
1160
|
+
previous.size === fileSize) {
|
|
1161
|
+
snapshotsSkippedUnchanged++;
|
|
1162
|
+
continue;
|
|
1163
|
+
}
|
|
1164
|
+
const reason = `Pre-Plan Snapshot for "${intent.trim()}"`;
|
|
1165
|
+
await withTimeout(client.saveFileVersion(current.path, fileContent, finalProjectId, reason, 'modify', 0, 0), snapshotTimeoutMs);
|
|
1166
|
+
snapshotsSaved++;
|
|
1167
|
+
manifest.entries[normalizedPath] = {
|
|
1168
|
+
sha256: fileHash,
|
|
1169
|
+
size: fileSize,
|
|
1170
|
+
snapshotAt: new Date().toISOString(),
|
|
1171
|
+
};
|
|
1172
|
+
manifestDirty = true;
|
|
1173
|
+
if (process.env.DEBUG) {
|
|
1174
|
+
console.log(chalk.green(` ✓ Snapshot saved: ${current.path}`));
|
|
1175
|
+
}
|
|
1176
|
+
}
|
|
1177
|
+
catch (error) {
|
|
1178
|
+
snapshotsFailed++;
|
|
1179
|
+
if (process.env.DEBUG) {
|
|
1180
|
+
console.warn(chalk.yellow(` ⚠️ Failed to save snapshot for ${current.path}: ${error instanceof Error ? error.message : 'Unknown error'}`));
|
|
1181
|
+
}
|
|
1182
|
+
}
|
|
1183
|
+
}
|
|
1184
|
+
});
|
|
1185
|
+
await Promise.all(workers);
|
|
1186
|
+
if (manifestDirty) {
|
|
1187
|
+
try {
|
|
1188
|
+
manifest.updatedAt = new Date().toISOString();
|
|
1189
|
+
saveSnapshotManifest(cwd, manifest);
|
|
954
1190
|
}
|
|
955
|
-
catch (
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
1191
|
+
catch (manifestError) {
|
|
1192
|
+
if (process.env.DEBUG) {
|
|
1193
|
+
console.warn(chalk.yellow(` ⚠️ Could not persist snapshot manifest: ${manifestError instanceof Error ? manifestError.message : 'Unknown error'}`));
|
|
1194
|
+
}
|
|
959
1195
|
}
|
|
960
1196
|
}
|
|
1197
|
+
const snapshotsSkippedBudget = Math.max(0, snapshotCandidates.length - snapshotsProcessed);
|
|
961
1198
|
if (snapshotsSaved > 0) {
|
|
962
1199
|
console.log(chalk.green(`\n✅ ${snapshotsSaved} pre-flight snapshot(s) saved successfully`));
|
|
963
|
-
|
|
964
|
-
console.log(chalk.yellow(` ${snapshotsFailed} snapshot(s) failed (plan will continue)`));
|
|
965
|
-
}
|
|
966
|
-
console.log(chalk.dim(' You can revert these files using: neurcode revert <filePath> --to-version <version>\n'));
|
|
1200
|
+
console.log(chalk.dim(' You can revert these files using: neurcode revert <filePath> --to-version <version>'));
|
|
967
1201
|
}
|
|
968
1202
|
else if (snapshotsFailed > 0) {
|
|
969
1203
|
console.log(chalk.yellow(`\n⚠️ No snapshots were saved (${snapshotsFailed} failed)`));
|
|
970
|
-
console.log(chalk.dim(' Plan will continue, but revert functionality may be limited
|
|
1204
|
+
console.log(chalk.dim(' Plan will continue, but revert functionality may be limited'));
|
|
971
1205
|
}
|
|
972
1206
|
else {
|
|
973
|
-
console.log(chalk.dim('\n No
|
|
1207
|
+
console.log(chalk.dim('\n No new snapshots were required'));
|
|
1208
|
+
}
|
|
1209
|
+
if (snapshotsSkippedUnchanged > 0) {
|
|
1210
|
+
console.log(chalk.dim(` ${snapshotsSkippedUnchanged} file(s) skipped (unchanged since last snapshot)`));
|
|
1211
|
+
}
|
|
1212
|
+
if (snapshotsSkippedMissing > 0) {
|
|
1213
|
+
console.log(chalk.dim(` ${snapshotsSkippedMissing} file(s) skipped (not found locally)`));
|
|
1214
|
+
}
|
|
1215
|
+
if (snapshotsSkippedLarge > 0) {
|
|
1216
|
+
console.log(chalk.dim(` ${snapshotsSkippedLarge} file(s) skipped (size limit)`));
|
|
1217
|
+
}
|
|
1218
|
+
if (cappedCount > 0) {
|
|
1219
|
+
console.log(chalk.dim(` ${cappedCount} file(s) deferred by snapshot max-file cap (${snapshotMaxFiles})`));
|
|
1220
|
+
}
|
|
1221
|
+
if (snapshotsSkippedBudget > 0) {
|
|
1222
|
+
console.log(chalk.dim(` ${snapshotsSkippedBudget} file(s) deferred by snapshot budget`));
|
|
1223
|
+
}
|
|
1224
|
+
if (budgetExhausted && process.env.DEBUG) {
|
|
1225
|
+
console.log(chalk.dim(' Snapshot budget exhausted before processing all candidates.'));
|
|
974
1226
|
}
|
|
1227
|
+
console.log('');
|
|
975
1228
|
}
|
|
976
1229
|
// Step 3: Post-Generation Hallucination Check (DEEP SCAN)
|
|
977
1230
|
// Scan ALL plan content for phantom packages - not just summaries, but full proposed code
|
|
@@ -1105,6 +1358,24 @@ async function planCommand(intent, options) {
|
|
|
1105
1358
|
console.log(chalk.green('✅ No hallucinations detected'));
|
|
1106
1359
|
}
|
|
1107
1360
|
}
|
|
1361
|
+
if (!persistedPlanId) {
|
|
1362
|
+
const missingPlanMessage = 'Plan generated but failed to persist (planId missing). Cannot continue with prompt/apply/ship.';
|
|
1363
|
+
if (options.json) {
|
|
1364
|
+
emitPlanJson({
|
|
1365
|
+
success: false,
|
|
1366
|
+
cached: false,
|
|
1367
|
+
mode: intentMode,
|
|
1368
|
+
planId: null,
|
|
1369
|
+
sessionId: response.sessionId || null,
|
|
1370
|
+
projectId: finalProjectId || null,
|
|
1371
|
+
timestamp: response.timestamp,
|
|
1372
|
+
message: missingPlanMessage,
|
|
1373
|
+
plan: response.plan,
|
|
1374
|
+
});
|
|
1375
|
+
}
|
|
1376
|
+
console.error(chalk.red(`\n❌ ${missingPlanMessage}`));
|
|
1377
|
+
process.exit(2);
|
|
1378
|
+
}
|
|
1108
1379
|
// Display the plan (AFTER hallucination warnings)
|
|
1109
1380
|
if (isReadOnlyAnalysis) {
|
|
1110
1381
|
const writableTargets = response.plan.files.filter((file) => file.action !== 'BLOCK').length;
|
|
@@ -1113,13 +1384,13 @@ async function planCommand(intent, options) {
|
|
|
1113
1384
|
displayPlan(response.plan);
|
|
1114
1385
|
console.log(chalk.dim(`\nGenerated at: ${new Date(response.timestamp).toLocaleString()}`));
|
|
1115
1386
|
// Display plan ID if available
|
|
1116
|
-
if (
|
|
1387
|
+
if (persistedPlanId) {
|
|
1117
1388
|
console.log(chalk.bold.cyan(`\n📌 Plan ID: ${response.planId} (Saved)`));
|
|
1118
1389
|
console.log(chalk.dim(' Run \'neurcode prompt \' to generate a Cursor/AI prompt. (Ready now)'));
|
|
1119
1390
|
}
|
|
1120
1391
|
// Save sessionId and planId to state file (.neurcode/config.json)
|
|
1121
1392
|
try {
|
|
1122
|
-
if (
|
|
1393
|
+
if (persistedPlanId) {
|
|
1123
1394
|
// Save active plan ID (primary) and lastPlanId (backward compatibility)
|
|
1124
1395
|
(0, state_1.setActivePlanId)(response.planId);
|
|
1125
1396
|
(0, state_1.setLastPlanGeneratedAt)(new Date().toISOString());
|
|
@@ -1135,8 +1406,33 @@ async function planCommand(intent, options) {
|
|
|
1135
1406
|
console.warn(chalk.yellow(`⚠️ Could not save sessionId/planId to state: ${stateError instanceof Error ? stateError.message : 'Unknown error'}`));
|
|
1136
1407
|
}
|
|
1137
1408
|
}
|
|
1409
|
+
if (options.json) {
|
|
1410
|
+
emitPlanJson({
|
|
1411
|
+
success: true,
|
|
1412
|
+
cached: false,
|
|
1413
|
+
mode: intentMode,
|
|
1414
|
+
planId: response.planId,
|
|
1415
|
+
sessionId: response.sessionId || null,
|
|
1416
|
+
projectId: finalProjectId || null,
|
|
1417
|
+
timestamp: response.timestamp,
|
|
1418
|
+
message: 'Plan generated and persisted',
|
|
1419
|
+
plan: response.plan,
|
|
1420
|
+
});
|
|
1421
|
+
}
|
|
1138
1422
|
}
|
|
1139
1423
|
catch (error) {
|
|
1424
|
+
if (options.json) {
|
|
1425
|
+
emitPlanJson({
|
|
1426
|
+
success: false,
|
|
1427
|
+
cached: false,
|
|
1428
|
+
mode: 'implementation',
|
|
1429
|
+
planId: null,
|
|
1430
|
+
sessionId: null,
|
|
1431
|
+
projectId: options.projectId || null,
|
|
1432
|
+
timestamp: new Date().toISOString(),
|
|
1433
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
1434
|
+
});
|
|
1435
|
+
}
|
|
1140
1436
|
console.error(chalk.red('\n❌ Error generating plan:'));
|
|
1141
1437
|
if (error instanceof Error) {
|
|
1142
1438
|
console.error(chalk.red(error.message));
|