@codeledger/cli 0.2.0 → 0.5.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.
Files changed (66) hide show
  1. package/dist/commands/activate.d.ts.map +1 -1
  2. package/dist/commands/activate.js +98 -3
  3. package/dist/commands/activate.js.map +1 -1
  4. package/dist/commands/checkpoint.d.ts +26 -0
  5. package/dist/commands/checkpoint.d.ts.map +1 -0
  6. package/dist/commands/checkpoint.js +382 -0
  7. package/dist/commands/checkpoint.js.map +1 -0
  8. package/dist/commands/compare.d.ts.map +1 -1
  9. package/dist/commands/compare.js +29 -0
  10. package/dist/commands/compare.js.map +1 -1
  11. package/dist/commands/cowork-refresh.d.ts +8 -0
  12. package/dist/commands/cowork-refresh.d.ts.map +1 -0
  13. package/dist/commands/cowork-refresh.js +50 -0
  14. package/dist/commands/cowork-refresh.js.map +1 -0
  15. package/dist/commands/cowork-snapshot.d.ts +8 -0
  16. package/dist/commands/cowork-snapshot.d.ts.map +1 -0
  17. package/dist/commands/cowork-snapshot.js +34 -0
  18. package/dist/commands/cowork-snapshot.js.map +1 -0
  19. package/dist/commands/cowork-start.d.ts +8 -0
  20. package/dist/commands/cowork-start.d.ts.map +1 -0
  21. package/dist/commands/cowork-start.js +71 -0
  22. package/dist/commands/cowork-start.js.map +1 -0
  23. package/dist/commands/cowork-stop.d.ts +7 -0
  24. package/dist/commands/cowork-stop.d.ts.map +1 -0
  25. package/dist/commands/cowork-stop.js +43 -0
  26. package/dist/commands/cowork-stop.js.map +1 -0
  27. package/dist/commands/doctor.d.ts +9 -0
  28. package/dist/commands/doctor.d.ts.map +1 -0
  29. package/dist/commands/doctor.js +169 -0
  30. package/dist/commands/doctor.js.map +1 -0
  31. package/dist/commands/init.d.ts.map +1 -1
  32. package/dist/commands/init.js +36 -0
  33. package/dist/commands/init.js.map +1 -1
  34. package/dist/commands/intent.d.ts +37 -0
  35. package/dist/commands/intent.d.ts.map +1 -0
  36. package/dist/commands/intent.js +393 -0
  37. package/dist/commands/intent.js.map +1 -0
  38. package/dist/commands/refine.d.ts.map +1 -1
  39. package/dist/commands/refine.js +16 -0
  40. package/dist/commands/refine.js.map +1 -1
  41. package/dist/commands/run.d.ts.map +1 -1
  42. package/dist/commands/run.js +21 -0
  43. package/dist/commands/run.js.map +1 -1
  44. package/dist/commands/session-cleanup.js +1 -0
  45. package/dist/commands/session-cleanup.js.map +1 -1
  46. package/dist/commands/session-progress.d.ts.map +1 -1
  47. package/dist/commands/session-progress.js +29 -1
  48. package/dist/commands/session-progress.js.map +1 -1
  49. package/dist/commands/session-summary.d.ts.map +1 -1
  50. package/dist/commands/session-summary.js +585 -36
  51. package/dist/commands/session-summary.js.map +1 -1
  52. package/dist/commands/shared-summary.d.ts +15 -0
  53. package/dist/commands/shared-summary.d.ts.map +1 -0
  54. package/dist/commands/shared-summary.js +194 -0
  55. package/dist/commands/shared-summary.js.map +1 -0
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +115 -2
  58. package/dist/index.js.map +1 -1
  59. package/dist/session-paths.d.ts +2 -0
  60. package/dist/session-paths.d.ts.map +1 -1
  61. package/dist/session-paths.js +4 -0
  62. package/dist/session-paths.js.map +1 -1
  63. package/dist/templates/config.d.ts.map +1 -1
  64. package/dist/templates/config.js +45 -10
  65. package/dist/templates/config.js.map +1 -1
  66. package/package.json +9 -7
@@ -1 +1 @@
1
- {"version":3,"file":"activate.d.ts","sourceRoot":"","sources":["../../src/commands/activate.ts"],"names":[],"mappings":"AAgBA;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,CAqNf"}
1
+ {"version":3,"file":"activate.d.ts","sourceRoot":"","sources":["../../src/commands/activate.ts"],"names":[],"mappings":"AAmBA;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,CA4Rf"}
@@ -1,12 +1,14 @@
1
- import { readFileSync, writeFileSync, existsSync, mkdirSync, statSync, readdirSync } from 'node:fs';
1
+ import { readFileSync, writeFileSync, appendFileSync, existsSync, mkdirSync, statSync, readdirSync } from 'node:fs';
2
2
  import { join, dirname } from 'node:path';
3
3
  import { execSync } from 'node:child_process';
4
4
  import { buildBundleViaEngine } from '@codeledger/core-engine';
5
5
  import { buildRepoIndex } from '@codeledger/repo';
6
6
  import { renderBundleMarkdown } from '@codeledger/harness';
7
7
  import { resolveSessionId } from '../session-id.js';
8
- import { sessionBundlePath, sessionActivateRef, sessionStartRef, legacyBundlePath, } from '../session-paths.js';
9
- import { updateSession, findOverlappingFiles } from '../session-registry.js';
8
+ import { sessionBundlePath, sessionActivateRef, sessionStartRef, sessionTaskHistoryPath, legacyBundlePath, } from '../session-paths.js';
9
+ import { updateSession, findOverlappingFiles, getActiveSessions } from '../session-registry.js';
10
+ import { createCheckpoint } from './checkpoint.js';
11
+ import { autoInitIntent, evaluateDrift } from './intent.js';
10
12
  /**
11
13
  * `codeledger activate [--task "..."] [--session <id>]`
12
14
  *
@@ -25,6 +27,10 @@ import { updateSession, findOverlappingFiles } from '../session-registry.js';
25
27
  */
26
28
  export async function runActivate(cwd, flags) {
27
29
  const task = flags['task'];
30
+ if (task !== undefined && task.trim() === '') {
31
+ console.error('--task cannot be empty. Provide a task description: codeledger activate --task "describe your task"');
32
+ process.exit(1);
33
+ }
28
34
  const quiet = flags['quiet'] === 'true';
29
35
  const log = quiet ? (..._args) => { } : console.log;
30
36
  const sessionId = resolveSessionId({ session: flags['session'] });
@@ -142,6 +148,53 @@ export async function runActivate(cwd, flags) {
142
148
  includeBlastRadius,
143
149
  layerOrder,
144
150
  });
151
+ // -- Step 2.4: Auto-initialize intent contract --------------------------------
152
+ autoInitIntent(cwd, sessionId, task, scope);
153
+ // -- Step 2.5: Derive scope contract from bundle + dep graph ----------------
154
+ const bundlePaths = new Set(bundle.files.map((f) => f.path));
155
+ const neighborPaths = new Set();
156
+ for (const filePath of bundlePaths) {
157
+ const imports = repoIndex.dep_graph.imports[filePath] ?? [];
158
+ const dependents = repoIndex.dep_graph.dependents[filePath] ?? [];
159
+ for (const dep of [...imports, ...dependents]) {
160
+ if (!bundlePaths.has(dep)) {
161
+ neighborPaths.add(dep);
162
+ }
163
+ }
164
+ }
165
+ bundle.scope_contract = {
166
+ bundle_files: [...bundlePaths],
167
+ neighbor_files: [...neighborPaths],
168
+ enforcement: 'warn',
169
+ };
170
+ // -- Step 2.6: Detect cross-session conflict zones -------------------------
171
+ if (sessionId) {
172
+ const activeSessions = getActiveSessions(cwd);
173
+ const zones = [];
174
+ for (const session of activeSessions) {
175
+ if (session.session_id === sessionId)
176
+ continue;
177
+ for (const file of session.bundle_files) {
178
+ if (bundlePaths.has(file)) {
179
+ zones.push({
180
+ file,
181
+ other_session: session.session_id,
182
+ other_task: session.task,
183
+ });
184
+ }
185
+ }
186
+ }
187
+ if (zones.length > 0) {
188
+ bundle.conflict_zones = zones;
189
+ }
190
+ }
191
+ // -- Step 2.7: Attach intent drift metadata to bundle ----------------------
192
+ const intentData = evaluateDrift(cwd, sessionId);
193
+ if (intentData) {
194
+ bundle.bundle_intent_hash = intentData.currentHash;
195
+ bundle.baseline_intent_hash = intentData.baselineHash;
196
+ bundle.intent_drift_level = intentData.drift.drift_level;
197
+ }
145
198
  // -- Step 3: Write active-bundle.md ----------------------------------------
146
199
  const bundleMd = renderBundleMarkdown(bundle);
147
200
  // Write to session-specific path
@@ -160,6 +213,10 @@ export async function runActivate(cwd, flags) {
160
213
  mkdirSync(bundleDir, { recursive: true });
161
214
  }
162
215
  writeFileSync(join(bundleDir, `${bundle.bundle_id}.json`), JSON.stringify(bundle, null, 2) + '\n');
216
+ // -- Step 3.5: Record activation in task history (JSONL) -------------------
217
+ recordTaskActivation(cwd, sessionId, task, bundle);
218
+ // -- Step 4: Auto-checkpoint (save incremental snapshot for resume) --------
219
+ createCheckpoint(cwd, sessionId, true);
163
220
  // -- Update session registry with task and bundle files --------------------
164
221
  if (sessionId) {
165
222
  const bundleFiles = bundle.files.map((f) => f.path);
@@ -172,6 +229,16 @@ export async function runActivate(cwd, flags) {
172
229
  emitOverlapWarnings(cwd, sessionId, bundleFiles, log);
173
230
  }
174
231
  log(`\u{1F4E6} Bundle: ${bundle.files.length} files, ~${bundle.total_tokens} tokens`);
232
+ // Show intent drift (if contract exists)
233
+ const driftResult = evaluateDrift(cwd, sessionId);
234
+ if (driftResult && driftResult.drift.drift_level !== 'NONE') {
235
+ const d = driftResult.drift;
236
+ const icon = d.drift_level === 'CRITICAL' ? '\u{1F534}' : d.drift_level === 'MAJOR' ? '\u{1F7E1}' : '\u{26AA}';
237
+ log(` ${icon} Intent drift: ${d.drift_level} (${d.drift_score.toFixed(3)})`);
238
+ if (d.drift_level === 'MAJOR' || d.drift_level === 'CRITICAL') {
239
+ log(` Consider: codeledger intent ack or codeledger intent set --objective "..."`);
240
+ }
241
+ }
175
242
  // Show confidence
176
243
  if (bundle.confidence) {
177
244
  const c = bundle.confidence;
@@ -418,4 +485,32 @@ function saveActivateRef(cwd, sessionId) {
418
485
  // Non-fatal: fresh repo with no commits, or not a git repo
419
486
  }
420
487
  }
488
+ /**
489
+ * Append one activation record to `.task-history.jsonl` so session-summary
490
+ * can report per-task recall/precision at session end.
491
+ */
492
+ function recordTaskActivation(cwd, sessionId, task, bundle) {
493
+ try {
494
+ const head = execSync('git rev-parse HEAD', {
495
+ cwd,
496
+ encoding: 'utf-8',
497
+ timeout: 5000,
498
+ stdio: ['pipe', 'pipe', 'pipe'],
499
+ }).trim();
500
+ const record = {
501
+ task,
502
+ bundle_id: bundle.bundle_id,
503
+ bundle_files: bundle.files.map((f) => f.path),
504
+ bundle_tokens: bundle.total_tokens,
505
+ activate_ref: head,
506
+ activated_at: new Date().toISOString(),
507
+ };
508
+ const historyPath = sessionTaskHistoryPath(cwd, sessionId);
509
+ ensureDir(historyPath);
510
+ appendFileSync(historyPath, JSON.stringify(record) + '\n');
511
+ }
512
+ catch {
513
+ // Non-fatal: task history is best-effort
514
+ }
515
+ }
421
516
  //# sourceMappingURL=activate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"activate.js","sourceRoot":"","sources":["../../src/commands/activate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"activate.js","sourceRoot":"","sources":["../../src/commands/activate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import type { SessionId } from '@codeledger/types';
2
+ /**
3
+ * `codeledger checkpoint [create|restore|list] [--session <id>]`
4
+ *
5
+ * Periodic incremental snapshots that capture "work done so far" —
6
+ * enabling resume from checkpoint after interruption (rate limiting,
7
+ * crash, context window exhaustion).
8
+ *
9
+ * Each checkpoint stores:
10
+ * - The current bundle (task + selected files)
11
+ * - Git HEAD ref at checkpoint time
12
+ * - Files changed and uncommitted at that point
13
+ *
14
+ * Checkpoints are stored under .codeledger/sessions/{id}/checkpoints/
15
+ */
16
+ export declare function runCheckpoint(cwd: string, flags: Record<string, string>): Promise<void>;
17
+ /**
18
+ * Create a checkpoint from the current session state.
19
+ * Called automatically during `activate` and can be called manually.
20
+ */
21
+ export declare function createCheckpoint(cwd: string, sessionId: SessionId | null, quiet?: boolean): string | null;
22
+ /**
23
+ * Count how many checkpoints exist for a session.
24
+ */
25
+ export declare function countCheckpoints(cwd: string, sessionId: SessionId | null): number;
26
+ //# sourceMappingURL=checkpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../../src/commands/checkpoint.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAqD,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAItG;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,CAkBf;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,SAAS,GAAG,IAAI,EAC3B,KAAK,GAAE,OAAe,GACrB,MAAM,GAAG,IAAI,CAoEf;AAqHD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG,MAAM,CAIjF"}
@@ -0,0 +1,382 @@
1
+ import { readFileSync, writeFileSync, existsSync, mkdirSync, readdirSync, statSync } from 'node:fs';
2
+ import { join, dirname } from 'node:path';
3
+ import { execSync } from 'node:child_process';
4
+ import { resolveSessionId } from '../session-id.js';
5
+ import { sessionDir, sessionBundlePath, sessionActivateRef, sessionStartRef, legacyBundlePath } from '../session-paths.js';
6
+ /**
7
+ * `codeledger checkpoint [create|restore|list] [--session <id>]`
8
+ *
9
+ * Periodic incremental snapshots that capture "work done so far" —
10
+ * enabling resume from checkpoint after interruption (rate limiting,
11
+ * crash, context window exhaustion).
12
+ *
13
+ * Each checkpoint stores:
14
+ * - The current bundle (task + selected files)
15
+ * - Git HEAD ref at checkpoint time
16
+ * - Files changed and uncommitted at that point
17
+ *
18
+ * Checkpoints are stored under .codeledger/sessions/{id}/checkpoints/
19
+ */
20
+ export async function runCheckpoint(cwd, flags) {
21
+ const subcommand = flags['_sub'] ?? 'create';
22
+ const sessionId = resolveSessionId({ session: flags['session'] });
23
+ switch (subcommand) {
24
+ case 'create':
25
+ await createCheckpoint(cwd, sessionId, flags['quiet'] === 'true');
26
+ break;
27
+ case 'restore':
28
+ await restoreCheckpoint(cwd, sessionId, flags['id'] ?? null, flags['quiet'] === 'true');
29
+ break;
30
+ case 'list':
31
+ await listCheckpoints(cwd, sessionId);
32
+ break;
33
+ default:
34
+ console.error(`Unknown checkpoint subcommand: "${subcommand}". Use create, restore, or list.`);
35
+ process.exit(1);
36
+ }
37
+ }
38
+ /**
39
+ * Create a checkpoint from the current session state.
40
+ * Called automatically during `activate` and can be called manually.
41
+ */
42
+ export function createCheckpoint(cwd, sessionId, quiet = false) {
43
+ const log = quiet ? (..._args) => { } : console.log;
44
+ const configPath = join(cwd, '.codeledger', 'config.json');
45
+ if (!existsSync(configPath)) {
46
+ if (!quiet) {
47
+ console.error('No .codeledger/ found. Run "codeledger init" first.');
48
+ }
49
+ return null;
50
+ }
51
+ let config;
52
+ try {
53
+ config = JSON.parse(readFileSync(configPath, 'utf-8'));
54
+ }
55
+ catch {
56
+ return null;
57
+ }
58
+ // Load the latest bundle
59
+ const bundle = loadLatestBundle(cwd, config);
60
+ if (!bundle) {
61
+ if (!quiet) {
62
+ console.error('No active bundle found. Run "codeledger activate --task ..." before creating a checkpoint.');
63
+ }
64
+ return null;
65
+ }
66
+ // Get current git HEAD
67
+ let gitRef;
68
+ try {
69
+ gitRef = execSync('git rev-parse HEAD', {
70
+ cwd, encoding: 'utf-8', timeout: 5000, stdio: ['pipe', 'pipe', 'pipe'],
71
+ }).trim();
72
+ }
73
+ catch {
74
+ return null;
75
+ }
76
+ // Get files changed since session start
77
+ const filesChanged = getChangedFilesSinceRef(cwd, sessionId);
78
+ // Get uncommitted files
79
+ const uncommittedFiles = getUncommittedFiles(cwd);
80
+ // Generate checkpoint ID
81
+ const checkpointId = `cp-${Date.now().toString(36)}`;
82
+ const record = {
83
+ checkpoint_id: checkpointId,
84
+ session_id: sessionId ?? 'default',
85
+ bundle_id: bundle.bundle_id,
86
+ task: bundle.task,
87
+ created_at: new Date().toISOString(),
88
+ git_ref: gitRef,
89
+ bundle_files: bundle.files.map((f) => f.path),
90
+ files_changed: filesChanged,
91
+ uncommitted_files: uncommittedFiles,
92
+ };
93
+ // Write checkpoint to disk
94
+ const checkpointDir = getCheckpointDir(cwd, sessionId);
95
+ if (!existsSync(checkpointDir))
96
+ mkdirSync(checkpointDir, { recursive: true });
97
+ const checkpointPath = join(checkpointDir, `${checkpointId}.json`);
98
+ writeFileSync(checkpointPath, JSON.stringify(record, null, 2) + '\n');
99
+ log(`Checkpoint saved: ${checkpointId} (${filesChanged.length} files changed, ${uncommittedFiles.length} uncommitted)`);
100
+ return checkpointId;
101
+ }
102
+ /**
103
+ * Restore from a checkpoint — rewrites the active bundle with checkpoint context
104
+ * and prints a progress summary so the agent knows where to resume.
105
+ */
106
+ async function restoreCheckpoint(cwd, sessionId, checkpointId, quiet = false) {
107
+ const log = quiet ? (..._args) => { } : console.log;
108
+ const checkpointDir = getCheckpointDir(cwd, sessionId);
109
+ if (!existsSync(checkpointDir)) {
110
+ console.error('No checkpoints found for this session.');
111
+ return;
112
+ }
113
+ let record;
114
+ if (checkpointId) {
115
+ // Load specific checkpoint
116
+ const path = join(checkpointDir, `${checkpointId}.json`);
117
+ if (!existsSync(path)) {
118
+ console.error(`Checkpoint "${checkpointId}" not found. Run "codeledger checkpoint list" to see available checkpoints.`);
119
+ process.exit(1);
120
+ }
121
+ record = JSON.parse(readFileSync(path, 'utf-8'));
122
+ }
123
+ else {
124
+ // Load the most recent checkpoint
125
+ const latest = getLatestCheckpoint(checkpointDir);
126
+ if (!latest) {
127
+ console.error('No checkpoints found for this session.');
128
+ return;
129
+ }
130
+ record = latest;
131
+ }
132
+ // Render a resume markdown that the agent can read
133
+ const resumeMd = renderResumeMarkdown(cwd, record);
134
+ // Write the resume info to the active-bundle path so the agent sees it
135
+ const bundlePath = sessionBundlePath(cwd, sessionId);
136
+ const dir = dirname(bundlePath);
137
+ if (!existsSync(dir))
138
+ mkdirSync(dir, { recursive: true });
139
+ // Append resume context to the existing bundle (if it exists)
140
+ let existingBundle = '';
141
+ if (existsSync(bundlePath)) {
142
+ existingBundle = readFileSync(bundlePath, 'utf-8');
143
+ }
144
+ const combined = existingBundle
145
+ ? existingBundle + '\n\n' + resumeMd
146
+ : resumeMd;
147
+ writeFileSync(bundlePath, combined);
148
+ // Also update legacy fallback
149
+ if (sessionId) {
150
+ const fallback = legacyBundlePath(cwd);
151
+ const fallbackDir = dirname(fallback);
152
+ if (!existsSync(fallbackDir))
153
+ mkdirSync(fallbackDir, { recursive: true });
154
+ writeFileSync(fallback, combined);
155
+ }
156
+ log(`Restored from checkpoint: ${record.checkpoint_id}`);
157
+ log(` Task: "${record.task}"`);
158
+ log(` Git ref at checkpoint: ${record.git_ref.slice(0, 7)}`);
159
+ log(` ${record.files_changed.length} files were changed, ${record.uncommitted_files.length} uncommitted`);
160
+ log(` Resume context written to active-bundle.md`);
161
+ }
162
+ /**
163
+ * List all available checkpoints for the current session.
164
+ */
165
+ async function listCheckpoints(cwd, sessionId) {
166
+ const checkpointDir = getCheckpointDir(cwd, sessionId);
167
+ if (!existsSync(checkpointDir)) {
168
+ console.log('No checkpoints found.');
169
+ return;
170
+ }
171
+ const files = readdirSync(checkpointDir)
172
+ .filter((f) => f.endsWith('.json'))
173
+ .map((f) => {
174
+ const path = join(checkpointDir, f);
175
+ return {
176
+ name: f,
177
+ mtime: statSync(path).mtimeMs,
178
+ record: JSON.parse(readFileSync(path, 'utf-8')),
179
+ };
180
+ })
181
+ .sort((a, b) => b.mtime - a.mtime);
182
+ if (files.length === 0) {
183
+ console.log('No checkpoints found.');
184
+ return;
185
+ }
186
+ console.log(`\n Checkpoints (${files.length}):`);
187
+ console.log(' ' + '-'.length + '-'.repeat(59));
188
+ for (const f of files) {
189
+ const r = f.record;
190
+ const age = formatAge(Date.now() - f.mtime);
191
+ console.log(` ${r.checkpoint_id} ${age} ago ${r.files_changed.length} changed ${r.uncommitted_files.length} uncommitted`);
192
+ console.log(` Task: "${truncate(r.task, 60)}"`);
193
+ }
194
+ console.log('');
195
+ }
196
+ /**
197
+ * Count how many checkpoints exist for a session.
198
+ */
199
+ export function countCheckpoints(cwd, sessionId) {
200
+ const checkpointDir = getCheckpointDir(cwd, sessionId);
201
+ if (!existsSync(checkpointDir))
202
+ return 0;
203
+ return readdirSync(checkpointDir).filter((f) => f.endsWith('.json')).length;
204
+ }
205
+ // ── Helpers ─────────────────────────────────────────────────────────────────
206
+ function getCheckpointDir(cwd, sessionId) {
207
+ return join(sessionDir(cwd, sessionId), 'checkpoints');
208
+ }
209
+ function loadLatestBundle(cwd, config) {
210
+ const bundleDir = join(cwd, config.workspace.artifacts_dir, 'bundles');
211
+ if (!existsSync(bundleDir))
212
+ return null;
213
+ const files = readdirSync(bundleDir)
214
+ .filter((f) => f.endsWith('.json'))
215
+ .map((f) => ({ name: f, mtime: statSync(join(bundleDir, f)).mtimeMs }))
216
+ .sort((a, b) => b.mtime - a.mtime);
217
+ if (files.length === 0)
218
+ return null;
219
+ try {
220
+ return JSON.parse(readFileSync(join(bundleDir, files[0].name), 'utf-8'));
221
+ }
222
+ catch {
223
+ return null;
224
+ }
225
+ }
226
+ function getChangedFilesSinceRef(cwd, sessionId) {
227
+ const files = new Set();
228
+ const activateRefPath = sessionActivateRef(cwd, sessionId);
229
+ const sessionRefPath = sessionStartRef(cwd, sessionId);
230
+ const refPath = existsSync(activateRefPath) ? activateRefPath : sessionRefPath;
231
+ if (existsSync(refPath)) {
232
+ const startRef = readFileSync(refPath, 'utf-8').trim();
233
+ if (startRef) {
234
+ try {
235
+ const diff = execSync(`git diff --name-only ${startRef}..HEAD`, {
236
+ cwd, encoding: 'utf-8', timeout: 5000, stdio: ['pipe', 'pipe', 'pipe'],
237
+ }).trim();
238
+ if (diff)
239
+ for (const f of diff.split('\n')) {
240
+ if (!f.startsWith('.codeledger/') && !f.startsWith('.claude/'))
241
+ files.add(f);
242
+ }
243
+ }
244
+ catch {
245
+ // non-fatal
246
+ }
247
+ }
248
+ }
249
+ // Include uncommitted
250
+ try {
251
+ const diff = execSync('git diff --name-only HEAD', {
252
+ cwd, encoding: 'utf-8', timeout: 5000, stdio: ['pipe', 'pipe', 'pipe'],
253
+ }).trim();
254
+ if (diff)
255
+ for (const f of diff.split('\n')) {
256
+ if (!f.startsWith('.codeledger/') && !f.startsWith('.claude/'))
257
+ files.add(f);
258
+ }
259
+ }
260
+ catch {
261
+ // non-fatal
262
+ }
263
+ return [...files];
264
+ }
265
+ function getUncommittedFiles(cwd) {
266
+ const files = new Set();
267
+ try {
268
+ const diff = execSync('git diff --name-only HEAD', {
269
+ cwd, encoding: 'utf-8', timeout: 5000, stdio: ['pipe', 'pipe', 'pipe'],
270
+ }).trim();
271
+ if (diff)
272
+ for (const f of diff.split('\n')) {
273
+ if (!f.startsWith('.codeledger/') && !f.startsWith('.claude/'))
274
+ files.add(f);
275
+ }
276
+ }
277
+ catch {
278
+ // non-fatal
279
+ }
280
+ try {
281
+ const untracked = execSync('git ls-files --others --exclude-standard', {
282
+ cwd, encoding: 'utf-8', timeout: 5000, stdio: ['pipe', 'pipe', 'pipe'],
283
+ }).trim();
284
+ if (untracked)
285
+ for (const f of untracked.split('\n')) {
286
+ if (!f.startsWith('.codeledger/') && !f.startsWith('.claude/'))
287
+ files.add(f);
288
+ }
289
+ }
290
+ catch {
291
+ // non-fatal
292
+ }
293
+ return [...files];
294
+ }
295
+ function getLatestCheckpoint(checkpointDir) {
296
+ const files = readdirSync(checkpointDir)
297
+ .filter((f) => f.endsWith('.json'))
298
+ .map((f) => ({ name: f, mtime: statSync(join(checkpointDir, f)).mtimeMs }))
299
+ .sort((a, b) => b.mtime - a.mtime);
300
+ if (files.length === 0)
301
+ return null;
302
+ try {
303
+ return JSON.parse(readFileSync(join(checkpointDir, files[0].name), 'utf-8'));
304
+ }
305
+ catch {
306
+ return null;
307
+ }
308
+ }
309
+ function renderResumeMarkdown(cwd, record) {
310
+ const lines = [];
311
+ lines.push('---');
312
+ lines.push('## Resume from Checkpoint');
313
+ lines.push('');
314
+ lines.push(`**Checkpoint:** ${record.checkpoint_id}`);
315
+ lines.push(`**Saved at:** ${record.created_at}`);
316
+ lines.push(`**Git ref:** ${record.git_ref.slice(0, 7)}`);
317
+ lines.push('');
318
+ if (record.files_changed.length > 0) {
319
+ lines.push('### Files Already Changed');
320
+ lines.push('');
321
+ lines.push('These files were modified before the interruption:');
322
+ lines.push('');
323
+ for (const f of record.files_changed) {
324
+ lines.push(`- \`${f}\``);
325
+ }
326
+ lines.push('');
327
+ }
328
+ if (record.uncommitted_files.length > 0) {
329
+ lines.push('### Uncommitted Work');
330
+ lines.push('');
331
+ lines.push('These files had uncommitted changes at checkpoint time:');
332
+ lines.push('');
333
+ for (const f of record.uncommitted_files) {
334
+ lines.push(`- \`${f}\``);
335
+ }
336
+ lines.push('');
337
+ }
338
+ // Determine what's left to do
339
+ const changedSet = new Set(record.files_changed);
340
+ const remaining = record.bundle_files.filter((f) => !changedSet.has(f));
341
+ if (remaining.length > 0) {
342
+ lines.push('### Bundle Files Not Yet Touched');
343
+ lines.push('');
344
+ lines.push('These bundle files were not modified before the interruption:');
345
+ lines.push('');
346
+ for (const f of remaining.slice(0, 15)) {
347
+ lines.push(`- \`${f}\``);
348
+ }
349
+ if (remaining.length > 15) {
350
+ lines.push(`- ... and ${remaining.length - 15} more`);
351
+ }
352
+ lines.push('');
353
+ }
354
+ // Check if git has advanced since checkpoint
355
+ try {
356
+ const currentRef = execSync('git rev-parse HEAD', {
357
+ cwd, encoding: 'utf-8', timeout: 5000, stdio: ['pipe', 'pipe', 'pipe'],
358
+ }).trim();
359
+ if (currentRef !== record.git_ref) {
360
+ lines.push(`> **Note:** HEAD has advanced since this checkpoint (was ${record.git_ref.slice(0, 7)}, now ${currentRef.slice(0, 7)}). New commits may have been added.`);
361
+ lines.push('');
362
+ }
363
+ }
364
+ catch {
365
+ // non-fatal
366
+ }
367
+ return lines.join('\n');
368
+ }
369
+ function formatAge(ms) {
370
+ const sec = Math.floor(ms / 1000);
371
+ if (sec < 60)
372
+ return `${sec}s`;
373
+ const min = Math.floor(sec / 60);
374
+ if (min < 60)
375
+ return `${min}m`;
376
+ const hr = Math.floor(min / 60);
377
+ return `${hr}h ${min % 60}m`;
378
+ }
379
+ function truncate(s, max) {
380
+ return s.length <= max ? s : s.slice(0, max - 3) + '...';
381
+ }
382
+ //# sourceMappingURL=checkpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../../src/commands/checkpoint.ts"],"names":[],"mappings":"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"}