@codeledger/cli 0.1.1

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 (94) hide show
  1. package/LICENSE +27 -0
  2. package/dist/commands/activate.d.ts +18 -0
  3. package/dist/commands/activate.d.ts.map +1 -0
  4. package/dist/commands/activate.js +326 -0
  5. package/dist/commands/activate.js.map +1 -0
  6. package/dist/commands/bundle.d.ts +2 -0
  7. package/dist/commands/bundle.d.ts.map +1 -0
  8. package/dist/commands/bundle.js +144 -0
  9. package/dist/commands/bundle.js.map +1 -0
  10. package/dist/commands/clean.d.ts +2 -0
  11. package/dist/commands/clean.d.ts.map +1 -0
  12. package/dist/commands/clean.js +28 -0
  13. package/dist/commands/clean.js.map +1 -0
  14. package/dist/commands/compare.d.ts +2 -0
  15. package/dist/commands/compare.d.ts.map +1 -0
  16. package/dist/commands/compare.js +216 -0
  17. package/dist/commands/compare.js.map +1 -0
  18. package/dist/commands/init.d.ts +2 -0
  19. package/dist/commands/init.d.ts.map +1 -0
  20. package/dist/commands/init.js +135 -0
  21. package/dist/commands/init.js.map +1 -0
  22. package/dist/commands/run.d.ts +2 -0
  23. package/dist/commands/run.d.ts.map +1 -0
  24. package/dist/commands/run.js +57 -0
  25. package/dist/commands/run.js.map +1 -0
  26. package/dist/commands/scan.d.ts +2 -0
  27. package/dist/commands/scan.d.ts.map +1 -0
  28. package/dist/commands/scan.js +27 -0
  29. package/dist/commands/scan.js.map +1 -0
  30. package/dist/commands/session-cleanup.d.ts +11 -0
  31. package/dist/commands/session-cleanup.d.ts.map +1 -0
  32. package/dist/commands/session-cleanup.js +81 -0
  33. package/dist/commands/session-cleanup.js.map +1 -0
  34. package/dist/commands/session-init.d.ts +10 -0
  35. package/dist/commands/session-init.d.ts.map +1 -0
  36. package/dist/commands/session-init.js +46 -0
  37. package/dist/commands/session-init.js.map +1 -0
  38. package/dist/commands/session-progress.d.ts +12 -0
  39. package/dist/commands/session-progress.d.ts.map +1 -0
  40. package/dist/commands/session-progress.js +259 -0
  41. package/dist/commands/session-progress.js.map +1 -0
  42. package/dist/commands/session-summary.d.ts +14 -0
  43. package/dist/commands/session-summary.d.ts.map +1 -0
  44. package/dist/commands/session-summary.js +287 -0
  45. package/dist/commands/session-summary.js.map +1 -0
  46. package/dist/commands/sessions.d.ts +9 -0
  47. package/dist/commands/sessions.d.ts.map +1 -0
  48. package/dist/commands/sessions.js +60 -0
  49. package/dist/commands/sessions.js.map +1 -0
  50. package/dist/commands/share.d.ts +9 -0
  51. package/dist/commands/share.d.ts.map +1 -0
  52. package/dist/commands/share.js +275 -0
  53. package/dist/commands/share.js.map +1 -0
  54. package/dist/index.d.ts +3 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +150 -0
  57. package/dist/index.js.map +1 -0
  58. package/dist/session-id.d.ts +22 -0
  59. package/dist/session-id.d.ts.map +1 -0
  60. package/dist/session-id.js +49 -0
  61. package/dist/session-id.js.map +1 -0
  62. package/dist/session-paths.d.ts +23 -0
  63. package/dist/session-paths.d.ts.map +1 -0
  64. package/dist/session-paths.js +44 -0
  65. package/dist/session-paths.js.map +1 -0
  66. package/dist/session-registry.d.ts +19 -0
  67. package/dist/session-registry.d.ts.map +1 -0
  68. package/dist/session-registry.js +180 -0
  69. package/dist/session-registry.js.map +1 -0
  70. package/dist/templates/claude-md.d.ts +10 -0
  71. package/dist/templates/claude-md.d.ts.map +1 -0
  72. package/dist/templates/claude-md.js +107 -0
  73. package/dist/templates/claude-md.js.map +1 -0
  74. package/dist/templates/config.d.ts +3 -0
  75. package/dist/templates/config.d.ts.map +1 -0
  76. package/dist/templates/config.js +82 -0
  77. package/dist/templates/config.js.map +1 -0
  78. package/dist/templates/harness-pack.d.ts +3 -0
  79. package/dist/templates/harness-pack.d.ts.map +1 -0
  80. package/dist/templates/harness-pack.js +26 -0
  81. package/dist/templates/harness-pack.js.map +1 -0
  82. package/dist/templates/hooks.d.ts +34 -0
  83. package/dist/templates/hooks.d.ts.map +1 -0
  84. package/dist/templates/hooks.js +149 -0
  85. package/dist/templates/hooks.js.map +1 -0
  86. package/dist/templates/scenarios.d.ts +3 -0
  87. package/dist/templates/scenarios.d.ts.map +1 -0
  88. package/dist/templates/scenarios.js +335 -0
  89. package/dist/templates/scenarios.js.map +1 -0
  90. package/dist/version.d.ts +2 -0
  91. package/dist/version.d.ts.map +1 -0
  92. package/dist/version.js +5 -0
  93. package/dist/version.js.map +1 -0
  94. package/package.json +45 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-summary.js","sourceRoot":"","sources":["../../src/commands/session-summary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * `codeledger sessions [--prune]`
3
+ *
4
+ * List active CodeLedger sessions for this repo. Shows each session's
5
+ * ID, task, age, and bundle file count. Also highlights file overlaps
6
+ * between concurrent sessions.
7
+ */
8
+ export declare function runSessions(cwd: string, _flags: Record<string, string>): Promise<void>;
9
+ //# sourceMappingURL=sessions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/commands/sessions.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,OAAO,CAAC,IAAI,CAAC,CAuCf"}
@@ -0,0 +1,60 @@
1
+ import { getActiveSessions, findOverlappingFiles } from '../session-registry.js';
2
+ /**
3
+ * `codeledger sessions [--prune]`
4
+ *
5
+ * List active CodeLedger sessions for this repo. Shows each session's
6
+ * ID, task, age, and bundle file count. Also highlights file overlaps
7
+ * between concurrent sessions.
8
+ */
9
+ export async function runSessions(cwd, _flags) {
10
+ const sessions = getActiveSessions(cwd);
11
+ if (sessions.length === 0) {
12
+ console.log('No active CodeLedger sessions.');
13
+ return;
14
+ }
15
+ console.log(`Active sessions: ${sessions.length}\n`);
16
+ for (const s of sessions) {
17
+ const age = formatAge(s.started_at);
18
+ const task = s.task ? `"${truncate(s.task, 50)}"` : '(no task)';
19
+ const files = s.bundle_files.length;
20
+ console.log(` ${s.session_id} ${task} started ${age} (${files} bundle file${files === 1 ? '' : 's'})`);
21
+ }
22
+ // Show overlaps between sessions
23
+ if (sessions.length >= 2) {
24
+ const allOverlaps = new Set();
25
+ for (const s of sessions) {
26
+ if (s.bundle_files.length === 0)
27
+ continue;
28
+ const overlaps = findOverlappingFiles(cwd, s.session_id, s.bundle_files);
29
+ for (const [, files] of overlaps) {
30
+ for (const f of files)
31
+ allOverlaps.add(f);
32
+ }
33
+ }
34
+ if (allOverlaps.size > 0) {
35
+ console.log(`\n Overlapping files: ${allOverlaps.size}`);
36
+ for (const f of [...allOverlaps].slice(0, 10)) {
37
+ console.log(` ${f}`);
38
+ }
39
+ if (allOverlaps.size > 10) {
40
+ console.log(` ... and ${allOverlaps.size - 10} more`);
41
+ }
42
+ }
43
+ }
44
+ }
45
+ function formatAge(isoDate) {
46
+ const ms = Date.now() - new Date(isoDate).getTime();
47
+ const minutes = Math.floor(ms / 60000);
48
+ if (minutes < 1)
49
+ return 'just now';
50
+ if (minutes < 60)
51
+ return `${minutes}m ago`;
52
+ const hours = Math.floor(minutes / 60);
53
+ if (hours < 24)
54
+ return `${hours}h ago`;
55
+ return `${Math.floor(hours / 24)}d ago`;
56
+ }
57
+ function truncate(s, max) {
58
+ return s.length <= max ? s : s.slice(0, max - 3) + '...';
59
+ }
60
+ //# sourceMappingURL=sessions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/commands/sessions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * `codeledger share [--format twitter|linkedin|markdown] [--clipboard]`
3
+ *
4
+ * Generate a shareable summary of CodeLedger results from the current session.
5
+ * Reads the latest bundle and session data to produce a formatted snippet
6
+ * that developers can share on social media or in documentation.
7
+ */
8
+ export declare function runShare(cwd: string, flags: Record<string, string>): Promise<void>;
9
+ //# sourceMappingURL=share.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"share.d.ts","sourceRoot":"","sources":["../../src/commands/share.ts"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAC5B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,CAmDf"}
@@ -0,0 +1,275 @@
1
+ import { readFileSync, existsSync, readdirSync, statSync } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { execSync } from 'node:child_process';
4
+ /**
5
+ * `codeledger share [--format twitter|linkedin|markdown] [--clipboard]`
6
+ *
7
+ * Generate a shareable summary of CodeLedger results from the current session.
8
+ * Reads the latest bundle and session data to produce a formatted snippet
9
+ * that developers can share on social media or in documentation.
10
+ */
11
+ export async function runShare(cwd, flags) {
12
+ const format = (flags['format'] ?? 'markdown');
13
+ const toClipboard = flags['clipboard'] === 'true';
14
+ const configPath = join(cwd, '.codeledger', 'config.json');
15
+ if (!existsSync(configPath)) {
16
+ console.error('No .codeledger/config.json found. Run "codeledger init" first.');
17
+ process.exit(1);
18
+ }
19
+ let config;
20
+ try {
21
+ config = JSON.parse(readFileSync(configPath, 'utf-8'));
22
+ }
23
+ catch {
24
+ console.error('Failed to parse .codeledger/config.json.');
25
+ process.exit(1);
26
+ }
27
+ // Load latest bundle
28
+ const bundle = loadLatestBundle(cwd, config);
29
+ if (!bundle) {
30
+ console.error('No bundle found. Run "codeledger activate --task ..." or "codeledger bundle --task ..." first.');
31
+ process.exit(1);
32
+ }
33
+ // Compute session metrics
34
+ const metrics = computeShareMetrics(cwd, config, bundle);
35
+ // Generate output
36
+ let output;
37
+ switch (format) {
38
+ case 'twitter':
39
+ output = formatTwitter(metrics);
40
+ break;
41
+ case 'linkedin':
42
+ output = formatLinkedIn(metrics);
43
+ break;
44
+ default:
45
+ output = formatMarkdown(metrics);
46
+ }
47
+ console.log(output);
48
+ if (toClipboard) {
49
+ try {
50
+ copyToClipboard(output);
51
+ console.log('\n(Copied to clipboard)');
52
+ }
53
+ catch {
54
+ console.log('\n(Could not copy to clipboard — output printed above)');
55
+ }
56
+ }
57
+ }
58
+ function computeShareMetrics(cwd, config, bundle) {
59
+ // Repo name from git remote or directory name
60
+ let repoName;
61
+ try {
62
+ const remote = execSync('git remote get-url origin', {
63
+ cwd,
64
+ encoding: 'utf-8',
65
+ timeout: 5000,
66
+ stdio: ['pipe', 'pipe', 'pipe'],
67
+ }).trim();
68
+ const match = remote.match(/\/([^/]+?)(?:\.git)?$/);
69
+ repoName = match?.[1] ?? cwd.split('/').pop() ?? 'repo';
70
+ }
71
+ catch {
72
+ repoName = cwd.split('/').pop() ?? 'repo';
73
+ }
74
+ // Repo tokens
75
+ const indexPath = join(cwd, config.workspace.cache_dir, 'repo-index.json');
76
+ let repoTokens = 0;
77
+ if (existsSync(indexPath)) {
78
+ try {
79
+ const repoIndex = JSON.parse(readFileSync(indexPath, 'utf-8'));
80
+ repoTokens = repoIndex.files.reduce((sum, f) => sum + f.lines * 4, 0);
81
+ }
82
+ catch {
83
+ // non-fatal
84
+ }
85
+ }
86
+ const reductionPct = repoTokens > 0
87
+ ? ((repoTokens - bundle.total_tokens) / repoTokens) * 100
88
+ : 0;
89
+ // Session recall/precision
90
+ let recall = null;
91
+ let precision = null;
92
+ let filesChanged = 0;
93
+ const changedFiles = getSessionChangedFiles(cwd);
94
+ filesChanged = changedFiles.length;
95
+ if (filesChanged > 0) {
96
+ const bundleFiles = bundle.files.map((f) => f.path);
97
+ const overlap = changedFiles.filter((f) => bundleFiles.includes(f));
98
+ recall = overlap.length / filesChanged;
99
+ precision = bundleFiles.length > 0 ? overlap.length / bundleFiles.length : 0;
100
+ }
101
+ return {
102
+ repoName,
103
+ task: bundle.task,
104
+ filesSelected: bundle.files.length,
105
+ bundleTokens: bundle.total_tokens,
106
+ repoTokens,
107
+ reductionPct,
108
+ recall,
109
+ precision,
110
+ confidence: bundle.confidence?.level ?? 'unknown',
111
+ filesChanged,
112
+ };
113
+ }
114
+ // ── Formatters ───────────────────────────────────────────────────────────────
115
+ function formatTwitter(m) {
116
+ const lines = [];
117
+ lines.push(`Just tested @CodeLedger on ${m.repoName}:`);
118
+ lines.push('');
119
+ if (m.recall !== null && m.filesChanged > 0) {
120
+ lines.push(`Bundle predicted ${Math.round(m.recall * 100)}% of files I changed`);
121
+ }
122
+ else if (m.filesChanged === 0) {
123
+ lines.push('(No files changed yet — recall will appear after edits)');
124
+ }
125
+ lines.push(`${fmtTokens(m.bundleTokens)} tokens vs ${fmtTokens(m.repoTokens)} full repo (${Math.round(m.reductionPct)}% reduction)`);
126
+ lines.push(`Confidence: ${m.confidence.toUpperCase()}`);
127
+ lines.push('');
128
+ lines.push('Deterministic context selection > embedding search');
129
+ lines.push('');
130
+ lines.push('#CodeLedger #AIcoding #DevTools');
131
+ return lines.join('\n');
132
+ }
133
+ function formatLinkedIn(m) {
134
+ const lines = [];
135
+ lines.push(`I've been testing CodeLedger — a deterministic context selection tool for AI coding agents — on ${m.repoName}.`);
136
+ lines.push('');
137
+ lines.push('Results:');
138
+ if (m.recall !== null && m.filesChanged > 0) {
139
+ lines.push(` - Bundle predicted ${Math.round(m.recall * 100)}% of files I actually changed (${m.recall >= 0.8 ? 'excellent' : m.recall >= 0.5 ? 'good' : 'improving'} recall)`);
140
+ }
141
+ else if (m.filesChanged === 0) {
142
+ lines.push(' - (No files changed yet — recall/precision will appear after edits)');
143
+ }
144
+ if (m.precision !== null && m.filesChanged > 0) {
145
+ lines.push(` - ${Math.round(m.precision * 100)}% of bundled files were relevant (precision)`);
146
+ }
147
+ lines.push(` - Context reduced from ${fmtTokens(m.repoTokens)} to ${fmtTokens(m.bundleTokens)} tokens (${Math.round(m.reductionPct)}% reduction)`);
148
+ lines.push(` - ${m.filesSelected} files selected deterministically — no embeddings, no cloud calls`);
149
+ lines.push('');
150
+ lines.push('What I like: the algorithm is fully deterministic. Same task + same repo = same bundle, every time. No randomness, no API calls, runs entirely local.');
151
+ lines.push('');
152
+ lines.push('#CodeLedger #AIcoding #DeveloperProductivity #ContextEngineering');
153
+ return lines.join('\n');
154
+ }
155
+ function formatMarkdown(m) {
156
+ const lines = [];
157
+ lines.push('## CodeLedger Benchmark Results');
158
+ lines.push('');
159
+ lines.push(`**Repo:** ${m.repoName}`);
160
+ lines.push(`**Task:** ${truncate(m.task, 80)}`);
161
+ lines.push('');
162
+ lines.push('| Metric | Value |');
163
+ lines.push('|--------|-------|');
164
+ lines.push(`| Files selected | ${m.filesSelected} |`);
165
+ lines.push(`| Bundle tokens | ${fmtTokens(m.bundleTokens)} |`);
166
+ lines.push(`| Full repo tokens | ${fmtTokens(m.repoTokens)} |`);
167
+ lines.push(`| Context reduction | ${Math.round(m.reductionPct)}% |`);
168
+ if (m.recall !== null && m.filesChanged > 0) {
169
+ lines.push(`| Recall | ${Math.round(m.recall * 100)}% |`);
170
+ }
171
+ else if (m.filesChanged === 0) {
172
+ lines.push('| Recall | (No files changed yet) |');
173
+ lines.push('| Precision | (No files changed yet) |');
174
+ }
175
+ if (m.precision !== null && m.filesChanged > 0) {
176
+ lines.push(`| Precision | ${Math.round(m.precision * 100)}% |`);
177
+ }
178
+ lines.push(`| Confidence | ${m.confidence.toUpperCase()} |`);
179
+ lines.push('');
180
+ lines.push('*Generated by [CodeLedger](https://github.com/codeledgerECF/codeledger-blackbox) — deterministic context selection for AI coding agents.*');
181
+ return lines.join('\n');
182
+ }
183
+ // ── Helpers ──────────────────────────────────────────────────────────────────
184
+ function loadLatestBundle(cwd, config) {
185
+ const bundleDir = join(cwd, config.workspace.artifacts_dir, 'bundles');
186
+ if (!existsSync(bundleDir))
187
+ return null;
188
+ const files = readdirSync(bundleDir)
189
+ .filter((f) => f.endsWith('.json'))
190
+ .map((f) => ({
191
+ name: f,
192
+ mtime: statSync(join(bundleDir, f)).mtimeMs,
193
+ }))
194
+ .sort((a, b) => b.mtime - a.mtime);
195
+ if (files.length === 0)
196
+ return null;
197
+ try {
198
+ return JSON.parse(readFileSync(join(bundleDir, files[0].name), 'utf-8'));
199
+ }
200
+ catch {
201
+ return null;
202
+ }
203
+ }
204
+ function getSessionChangedFiles(cwd) {
205
+ try {
206
+ const files = new Set();
207
+ const diffOutput = execSync('git diff --name-only HEAD', {
208
+ cwd,
209
+ encoding: 'utf-8',
210
+ timeout: 5000,
211
+ stdio: ['pipe', 'pipe', 'pipe'],
212
+ }).trim();
213
+ if (diffOutput) {
214
+ for (const f of diffOutput.split('\n'))
215
+ files.add(f);
216
+ }
217
+ const activateRefPath = join(cwd, '.codeledger', '.activate-ref');
218
+ const sessionRefPath = join(cwd, '.codeledger', '.session-start-ref');
219
+ const refPath = existsSync(activateRefPath) ? activateRefPath : sessionRefPath;
220
+ if (existsSync(refPath)) {
221
+ const startRef = readFileSync(refPath, 'utf-8').trim();
222
+ if (startRef) {
223
+ try {
224
+ const committedDiff = execSync(`git diff --name-only ${startRef}..HEAD`, { cwd, encoding: 'utf-8', timeout: 5000, stdio: ['pipe', 'pipe', 'pipe'] }).trim();
225
+ if (committedDiff) {
226
+ for (const f of committedDiff.split('\n'))
227
+ files.add(f);
228
+ }
229
+ }
230
+ catch {
231
+ // non-fatal
232
+ }
233
+ }
234
+ }
235
+ return [...files];
236
+ }
237
+ catch {
238
+ return [];
239
+ }
240
+ }
241
+ function fmtTokens(n) {
242
+ if (n >= 1_000_000)
243
+ return `${(n / 1_000_000).toFixed(1)}M`;
244
+ if (n >= 1_000)
245
+ return `${(n / 1_000).toFixed(1)}k`;
246
+ return `${n}`;
247
+ }
248
+ function truncate(s, max) {
249
+ return s.length <= max ? s : s.slice(0, max - 3) + '...';
250
+ }
251
+ function copyToClipboard(text) {
252
+ // Try platform-specific clipboard tools
253
+ const commands = [
254
+ 'xclip -selection clipboard',
255
+ 'xsel --clipboard --input',
256
+ 'pbcopy',
257
+ 'clip.exe',
258
+ ];
259
+ for (const cmd of commands) {
260
+ try {
261
+ execSync(cmd, {
262
+ input: text,
263
+ encoding: 'utf-8',
264
+ timeout: 5000,
265
+ stdio: ['pipe', 'pipe', 'pipe'],
266
+ });
267
+ return;
268
+ }
269
+ catch {
270
+ // try next
271
+ }
272
+ }
273
+ throw new Error('No clipboard tool available');
274
+ }
275
+ //# sourceMappingURL=share.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"share.js","sourceRoot":"","sources":["../../src/commands/share.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export declare function parseArgs(argv: string[]): Record<string, string>;
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAoBA,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAgBhE"}
package/dist/index.js ADDED
@@ -0,0 +1,150 @@
1
+ #!/usr/bin/env node
2
+ import { runInit } from './commands/init.js';
3
+ import { runScan } from './commands/scan.js';
4
+ import { runBundle } from './commands/bundle.js';
5
+ import { runActivate } from './commands/activate.js';
6
+ import { runRun } from './commands/run.js';
7
+ import { runCompare } from './commands/compare.js';
8
+ import { runSessionSummary } from './commands/session-summary.js';
9
+ import { runSessionProgress } from './commands/session-progress.js';
10
+ import { runSessionInit } from './commands/session-init.js';
11
+ import { runSessionCleanup } from './commands/session-cleanup.js';
12
+ import { runSessions } from './commands/sessions.js';
13
+ import { runClean } from './commands/clean.js';
14
+ import { runShare } from './commands/share.js';
15
+ import { CLI_VERSION } from './version.js';
16
+ const args = process.argv.slice(2);
17
+ const command = args[0];
18
+ export function parseArgs(argv) {
19
+ const result = {};
20
+ for (let i = 0; i < argv.length; i++) {
21
+ const arg = argv[i];
22
+ if (arg.startsWith('--')) {
23
+ const key = arg.slice(2);
24
+ const next = argv[i + 1];
25
+ if (next && !next.startsWith('--')) {
26
+ result[key] = next;
27
+ i++;
28
+ }
29
+ else {
30
+ result[key] = 'true';
31
+ }
32
+ }
33
+ }
34
+ return result;
35
+ }
36
+ async function main() {
37
+ switch (command) {
38
+ case 'init': {
39
+ const initFlags = parseArgs(args.slice(1));
40
+ await runInit(process.cwd(), initFlags);
41
+ break;
42
+ }
43
+ case 'scan':
44
+ await runScan(process.cwd());
45
+ break;
46
+ case 'bundle': {
47
+ const flags = parseArgs(args.slice(1));
48
+ await runBundle(process.cwd(), flags);
49
+ break;
50
+ }
51
+ case 'activate': {
52
+ const activateFlags = parseArgs(args.slice(1));
53
+ await runActivate(process.cwd(), activateFlags);
54
+ break;
55
+ }
56
+ case 'run': {
57
+ const runFlags = parseArgs(args.slice(1));
58
+ await runRun(process.cwd(), runFlags);
59
+ break;
60
+ }
61
+ case 'compare': {
62
+ const compareFlags = parseArgs(args.slice(1));
63
+ await runCompare(process.cwd(), compareFlags);
64
+ break;
65
+ }
66
+ case 'session-summary': {
67
+ const summaryFlags = parseArgs(args.slice(1));
68
+ await runSessionSummary(process.cwd(), summaryFlags);
69
+ break;
70
+ }
71
+ case 'session-progress': {
72
+ const progressFlags = parseArgs(args.slice(1));
73
+ await runSessionProgress(process.cwd(), progressFlags);
74
+ break;
75
+ }
76
+ case 'session-init': {
77
+ const sessionInitFlags = parseArgs(args.slice(1));
78
+ await runSessionInit(process.cwd(), sessionInitFlags);
79
+ break;
80
+ }
81
+ case 'session-cleanup': {
82
+ const sessionCleanupFlags = parseArgs(args.slice(1));
83
+ await runSessionCleanup(process.cwd(), sessionCleanupFlags);
84
+ break;
85
+ }
86
+ case 'sessions': {
87
+ const sessionsFlags = parseArgs(args.slice(1));
88
+ await runSessions(process.cwd(), sessionsFlags);
89
+ break;
90
+ }
91
+ case 'clean':
92
+ await runClean(process.cwd());
93
+ break;
94
+ case 'share': {
95
+ const shareFlags = parseArgs(args.slice(1));
96
+ await runShare(process.cwd(), shareFlags);
97
+ break;
98
+ }
99
+ case 'version':
100
+ case '--version':
101
+ case '-v':
102
+ console.log(`codeledger v${CLI_VERSION}`);
103
+ break;
104
+ case 'help':
105
+ case '--help':
106
+ case '-h':
107
+ case undefined:
108
+ printHelp();
109
+ break;
110
+ default:
111
+ console.error(`❌ Unknown command: ${command}`);
112
+ printHelp();
113
+ process.exit(1);
114
+ }
115
+ }
116
+ function printHelp() {
117
+ console.log(`
118
+ CodeLedger Blackbox v${CLI_VERSION} — Deterministic, Bounded Context Selection for AI Coding Agents
119
+
120
+ Usage: codeledger <command> [options]
121
+
122
+ Commands:
123
+ init [--force] Initialize .codeledger/ in the current repo
124
+ scan Build the repo index (dependency graph, churn, test map)
125
+ bundle --task "..." Generate a deterministic context bundle [--json]
126
+ activate [--task ".."] Scan-if-stale + bundle + write active-bundle.md
127
+ Without --task: scan-only (warms index, no bundle)
128
+ run --scenario <p> Run a single benchmark scenario
129
+ compare --scenario A/B comparison: with vs without CodeLedger context
130
+ session-progress Write progress snapshot to .codeledger/session-progress.md
131
+ session-summary Show session-end value recap (bundle recall, token savings)
132
+ session-init Initialize a new session (returns session ID)
133
+ session-cleanup Clean up a session's state files and registry entry
134
+ sessions List active sessions and file overlaps
135
+ share [--format ..] Generate shareable result snippet (twitter|linkedin|markdown)
136
+ clean Remove orphaned worktrees from previous crashed runs
137
+
138
+ Options:
139
+ --version, -v Show version number
140
+ --help, -h Show this help message
141
+
142
+ Built by the team behind ContextECF (https://contextecf.com)
143
+ `);
144
+ }
145
+ main().catch((err) => {
146
+ const msg = err instanceof Error ? err.message : String(err);
147
+ console.error(`❌ Fatal error: ${msg}`);
148
+ process.exit(1);
149
+ });
150
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { SessionId } from '@codeledger/types';
2
+ /**
3
+ * Generate a short, human-readable session ID.
4
+ * Format: "s-" + 6 hex characters (e.g. "s-a3f2c1").
5
+ *
6
+ * 3 random bytes = 16,777,216 possible values. Collision probability is
7
+ * negligible for typical usage (< 100 concurrent sessions), but not
8
+ * cryptographically guaranteed. For birthday-paradox safety at 1000
9
+ * concurrent sessions the collision chance is ~0.003%.
10
+ */
11
+ export declare function generateSessionId(): SessionId;
12
+ /**
13
+ * Resolve a session ID from multiple sources in priority order:
14
+ * 1. Explicit --session CLI flag
15
+ * 2. CODELEDGER_SESSION env var (set by SessionStart hook)
16
+ * 3. PID-tagged marker file (.codeledger/.current-session-pid-{PPID})
17
+ * 4. null (single-session fallback — today's behavior)
18
+ */
19
+ export declare function resolveSessionId(flags: {
20
+ session?: string;
21
+ }): SessionId | null;
22
+ //# sourceMappingURL=session-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-id.d.ts","sourceRoot":"","sources":["../src/session-id.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,IAAI,SAAS,CAE7C;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GAAG,IAAI,CA2B9E"}