@codeledger/cli 0.2.1 → 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 (47) 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/cowork-snapshot.d.ts.map +1 -1
  9. package/dist/commands/cowork-snapshot.js +3 -2
  10. package/dist/commands/cowork-snapshot.js.map +1 -1
  11. package/dist/commands/doctor.d.ts +9 -0
  12. package/dist/commands/doctor.d.ts.map +1 -0
  13. package/dist/commands/doctor.js +169 -0
  14. package/dist/commands/doctor.js.map +1 -0
  15. package/dist/commands/init.d.ts.map +1 -1
  16. package/dist/commands/init.js +36 -0
  17. package/dist/commands/init.js.map +1 -1
  18. package/dist/commands/intent.d.ts +37 -0
  19. package/dist/commands/intent.d.ts.map +1 -0
  20. package/dist/commands/intent.js +393 -0
  21. package/dist/commands/intent.js.map +1 -0
  22. package/dist/commands/refine.d.ts.map +1 -1
  23. package/dist/commands/refine.js +16 -0
  24. package/dist/commands/refine.js.map +1 -1
  25. package/dist/commands/session-cleanup.js +1 -0
  26. package/dist/commands/session-cleanup.js.map +1 -1
  27. package/dist/commands/session-progress.d.ts.map +1 -1
  28. package/dist/commands/session-progress.js +29 -1
  29. package/dist/commands/session-progress.js.map +1 -1
  30. package/dist/commands/session-summary.d.ts.map +1 -1
  31. package/dist/commands/session-summary.js +585 -36
  32. package/dist/commands/session-summary.js.map +1 -1
  33. package/dist/commands/shared-summary.d.ts +15 -0
  34. package/dist/commands/shared-summary.d.ts.map +1 -0
  35. package/dist/commands/shared-summary.js +194 -0
  36. package/dist/commands/shared-summary.js.map +1 -0
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +80 -1
  39. package/dist/index.js.map +1 -1
  40. package/dist/session-paths.d.ts +2 -0
  41. package/dist/session-paths.d.ts.map +1 -1
  42. package/dist/session-paths.js +4 -0
  43. package/dist/session-paths.js.map +1 -1
  44. package/dist/templates/config.d.ts.map +1 -1
  45. package/dist/templates/config.js +45 -10
  46. package/dist/templates/config.js.map +1 -1
  47. package/package.json +9 -9
@@ -1 +1 @@
1
- {"version":3,"file":"cowork-snapshot.d.ts","sourceRoot":"","sources":["../../src/commands/cowork-snapshot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,CAyBf"}
1
+ {"version":3,"file":"cowork-snapshot.d.ts","sourceRoot":"","sources":["../../src/commands/cowork-snapshot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
@@ -25,9 +25,10 @@ export async function runCoworkSnapshot(cwd, flags) {
25
25
  process.exit(1);
26
26
  }
27
27
  writeProgressSnapshot(workspace, bundle);
28
+ const nextFiles = bundle.selected.slice(0, 5).map((f) => f.path);
28
29
  log('Progress snapshot written to .codeledger/progress-snapshot.json');
29
30
  log(` Intent: "${bundle.intent.text}"`);
30
- log(` Bundle: ${bundle.selected.length} files`);
31
- log(` Remaining unread: ${bundle.selected.length} files`);
31
+ log(` Bundle: ${bundle.selected.length} files from ${bundle.excluded_summary.total_seen} total`);
32
+ log(` Suggested next: ${nextFiles.join(', ')}`);
32
33
  }
33
34
  //# sourceMappingURL=cowork-snapshot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cowork-snapshot.js","sourceRoot":"","sources":["../../src/commands/cowork-snapshot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAW,EACX,KAA6B;IAE7B,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC9E,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC;IACxC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAgB,EAAE,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IAE9D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,qBAAqB,CAAC,CAAC;IACzE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,MAAoB,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAiB,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAEzC,GAAG,CAAC,iEAAiE,CAAC,CAAC;IACvE,GAAG,CAAC,cAAc,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;IACzC,GAAG,CAAC,aAAa,MAAM,CAAC,QAAQ,CAAC,MAAM,QAAQ,CAAC,CAAC;IACjD,GAAG,CAAC,uBAAuB,MAAM,CAAC,QAAQ,CAAC,MAAM,QAAQ,CAAC,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"cowork-snapshot.js","sourceRoot":"","sources":["../../src/commands/cowork-snapshot.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAW,EACX,KAA6B;IAE7B,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC9E,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,MAAM,CAAC;IACxC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAgB,EAAE,EAAE,GAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC;IAE9D,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,qBAAqB,CAAC,CAAC;IACzE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,oEAAoE,CAAC,CAAC;QACpF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,MAAoB,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAiB,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAEzC,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjE,GAAG,CAAC,iEAAiE,CAAC,CAAC;IACvE,GAAG,CAAC,cAAc,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC;IACzC,GAAG,CAAC,aAAa,MAAM,CAAC,QAAQ,CAAC,MAAM,eAAe,MAAM,CAAC,gBAAgB,CAAC,UAAU,QAAQ,CAAC,CAAC;IAClG,GAAG,CAAC,qBAAqB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * `codeledger doctor`
3
+ *
4
+ * Integration health check that validates the full CodeLedger integration surface.
5
+ * Checks CLI accessibility, config validity, index freshness, hooks installation,
6
+ * SQLite accessibility, and environment compatibility.
7
+ */
8
+ export declare function runDoctor(cwd: string): Promise<void>;
9
+ //# sourceMappingURL=doctor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoD1D"}
@@ -0,0 +1,169 @@
1
+ import { existsSync, readFileSync, accessSync, statSync, constants } from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import { execSync } from 'node:child_process';
4
+ /**
5
+ * `codeledger doctor`
6
+ *
7
+ * Integration health check that validates the full CodeLedger integration surface.
8
+ * Checks CLI accessibility, config validity, index freshness, hooks installation,
9
+ * SQLite accessibility, and environment compatibility.
10
+ */
11
+ export async function runDoctor(cwd) {
12
+ const checks = [];
13
+ // 1. Git installed
14
+ checks.push(checkGit(cwd));
15
+ // 2. Inside git repo
16
+ checks.push(checkGitRepo(cwd));
17
+ // 3. Node version compatible
18
+ checks.push(checkNodeVersion());
19
+ // 4. .codeledger/ directory exists
20
+ checks.push(checkCodeledgerDir(cwd));
21
+ // 5. Config valid and parseable
22
+ checks.push(checkConfig(cwd));
23
+ // 6. Repo index exists and not stale
24
+ checks.push(checkRepoIndex(cwd));
25
+ // 7. Hooks installed
26
+ checks.push(checkHooks(cwd));
27
+ // 8. SQLite ledger accessible
28
+ checks.push(checkLedger(cwd));
29
+ const allOk = checks.every((c) => c.ok);
30
+ const report = { checks, all_ok: allOk };
31
+ // Print results
32
+ console.log('');
33
+ console.log('CodeLedger Doctor');
34
+ console.log('='.repeat(50));
35
+ for (const check of report.checks) {
36
+ const icon = check.ok ? '\u2705' : '\u274C';
37
+ console.log(` ${icon} ${check.name}: ${check.message}`);
38
+ }
39
+ console.log('');
40
+ if (allOk) {
41
+ console.log('All checks passed. CodeLedger is healthy.');
42
+ }
43
+ else {
44
+ const failCount = checks.filter((c) => !c.ok).length;
45
+ console.log(`${failCount} check${failCount === 1 ? '' : 's'} failed. See above for details.`);
46
+ }
47
+ console.log('');
48
+ if (!allOk) {
49
+ process.exit(1);
50
+ }
51
+ }
52
+ function checkGit(_cwd) {
53
+ try {
54
+ const version = execSync('git --version', { encoding: 'utf-8', stdio: 'pipe' }).trim();
55
+ return { name: 'Git', ok: true, message: version };
56
+ }
57
+ catch {
58
+ return { name: 'Git', ok: false, message: 'Git is not installed' };
59
+ }
60
+ }
61
+ function checkGitRepo(cwd) {
62
+ try {
63
+ execSync('git rev-parse --git-dir', { cwd, encoding: 'utf-8', stdio: 'pipe' });
64
+ return { name: 'Git repository', ok: true, message: 'Inside a git repository' };
65
+ }
66
+ catch {
67
+ return { name: 'Git repository', ok: false, message: 'Not inside a git repository — run "git init"' };
68
+ }
69
+ }
70
+ function checkNodeVersion() {
71
+ const version = process.version;
72
+ const match = version.match(/v(\d+)/);
73
+ const major = match ? parseInt(match[1], 10) : 0;
74
+ if (major >= 18) {
75
+ return { name: 'Node.js', ok: true, message: `${version} (>= 18 required)` };
76
+ }
77
+ return { name: 'Node.js', ok: false, message: `${version} — Node.js >= 18 required` };
78
+ }
79
+ function checkCodeledgerDir(cwd) {
80
+ const dir = join(cwd, '.codeledger');
81
+ if (existsSync(dir)) {
82
+ return { name: '.codeledger/ directory', ok: true, message: 'Exists' };
83
+ }
84
+ return { name: '.codeledger/ directory', ok: false, message: 'Missing — run "codeledger init"' };
85
+ }
86
+ function checkConfig(cwd) {
87
+ const configPath = join(cwd, '.codeledger', 'config.json');
88
+ if (!existsSync(configPath)) {
89
+ return { name: 'Config', ok: false, message: 'config.json not found — run "codeledger init"' };
90
+ }
91
+ try {
92
+ const raw = readFileSync(configPath, 'utf-8');
93
+ const config = JSON.parse(raw);
94
+ if (!config['version'] || !config['selector']) {
95
+ return { name: 'Config', ok: false, message: 'config.json is missing required fields (version, selector)' };
96
+ }
97
+ return { name: 'Config', ok: true, message: `Valid (v${config['version']})` };
98
+ }
99
+ catch {
100
+ return { name: 'Config', ok: false, message: 'config.json is not valid JSON' };
101
+ }
102
+ }
103
+ function checkRepoIndex(cwd) {
104
+ const configPath = join(cwd, '.codeledger', 'config.json');
105
+ if (!existsSync(configPath)) {
106
+ return { name: 'Repo index', ok: false, message: 'No config — cannot locate index' };
107
+ }
108
+ try {
109
+ const config = JSON.parse(readFileSync(configPath, 'utf-8'));
110
+ const cacheDir = config['workspace']?.['cache_dir'] ?? '.codeledger/cache';
111
+ const indexPath = join(cwd, cacheDir, 'repo-index.json');
112
+ if (!existsSync(indexPath)) {
113
+ return { name: 'Repo index', ok: false, message: 'Missing — run "codeledger scan"' };
114
+ }
115
+ const stat = statSync(indexPath);
116
+ const ageMs = Date.now() - stat.mtimeMs;
117
+ const ageHrs = Math.round(ageMs / 3600000);
118
+ if (ageHrs > 24) {
119
+ return { name: 'Repo index', ok: true, message: `Exists but stale (${ageHrs}h old) — consider "codeledger scan"` };
120
+ }
121
+ return { name: 'Repo index', ok: true, message: `Fresh (${ageHrs}h old)` };
122
+ }
123
+ catch {
124
+ return { name: 'Repo index', ok: false, message: 'Could not read index' };
125
+ }
126
+ }
127
+ function checkHooks(cwd) {
128
+ const hooksPath = join(cwd, '.claude', 'hooks.json');
129
+ if (!existsSync(hooksPath)) {
130
+ return { name: 'Hooks', ok: false, message: '.claude/hooks.json not found — run "codeledger init"' };
131
+ }
132
+ try {
133
+ const hooks = JSON.parse(readFileSync(hooksPath, 'utf-8'));
134
+ const hookTypes = Object.keys(hooks);
135
+ const hasSessionStart = hookTypes.some((k) => k.toLowerCase().includes('sessionstart') || k === 'SessionStart');
136
+ if (!hasSessionStart) {
137
+ return { name: 'Hooks', ok: true, message: `Installed (${hookTypes.length} hooks, but no SessionStart)` };
138
+ }
139
+ return { name: 'Hooks', ok: true, message: `Installed (${hookTypes.length} hooks)` };
140
+ }
141
+ catch {
142
+ return { name: 'Hooks', ok: false, message: '.claude/hooks.json is not valid JSON' };
143
+ }
144
+ }
145
+ function checkLedger(cwd) {
146
+ const configPath = join(cwd, '.codeledger', 'config.json');
147
+ if (!existsSync(configPath)) {
148
+ return { name: 'Ledger (SQLite)', ok: false, message: 'No config — cannot locate ledger' };
149
+ }
150
+ try {
151
+ const config = JSON.parse(readFileSync(configPath, 'utf-8'));
152
+ const dbPath = config['workspace']?.['db_path'] ?? '.codeledger/ledger.db';
153
+ const fullPath = join(cwd, dbPath);
154
+ if (!existsSync(fullPath)) {
155
+ return { name: 'Ledger (SQLite)', ok: true, message: 'Not yet created (will be created on first run)' };
156
+ }
157
+ try {
158
+ accessSync(fullPath, constants.R_OK | constants.W_OK);
159
+ return { name: 'Ledger (SQLite)', ok: true, message: 'Accessible (read/write)' };
160
+ }
161
+ catch {
162
+ return { name: 'Ledger (SQLite)', ok: false, message: 'Exists but not writable' };
163
+ }
164
+ }
165
+ catch {
166
+ return { name: 'Ledger (SQLite)', ok: false, message: 'Could not check ledger' };
167
+ }
168
+ }
169
+ //# sourceMappingURL=doctor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpF,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAW;IACzC,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,mBAAmB;IACnB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAE3B,qBAAqB;IACrB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IAE/B,6BAA6B;IAC7B,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAEhC,mCAAmC;IACnC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;IAErC,gCAAgC;IAChC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAE9B,qCAAqC;IACrC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IAEjC,qBAAqB;IACrB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;IAE7B,8BAA8B;IAC9B,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;IAE9B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACxC,MAAM,MAAM,GAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAEvD,gBAAgB;IAChB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClC,MAAM,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IAC3D,CAAC;SAAM,CAAC;QACN,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,SAAS,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,iCAAiC,CAAC,CAAC;IAChG,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEhB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,QAAQ,CAAC,eAAe,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACvF,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;IACrE,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAC/B,IAAI,CAAC;QACH,QAAQ,CAAC,yBAAyB,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/E,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;IAClF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAAC;IACxG,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAChC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;QAChB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,mBAAmB,EAAE,CAAC;IAC/E,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,2BAA2B,EAAE,CAAC;AACxF,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAW;IACrC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;IACrC,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,EAAE,IAAI,EAAE,wBAAwB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IACzE,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,wBAAwB,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;AACnG,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;IAC3D,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,+CAA+C,EAAE,CAAC;IACjG,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,4DAA4D,EAAE,CAAC;QAC9G,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,MAAM,CAAC,SAAS,CAAW,GAAG,EAAE,CAAC;IAC1F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,+BAA+B,EAAE,CAAC;IACjF,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;IAC3D,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;IACvF,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAA2C,CAAC;QACvG,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,mBAAmB,CAAC;QAC3E,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QAEzD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC3B,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,iCAAiC,EAAE,CAAC;QACvF,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC;QAE3C,IAAI,MAAM,GAAG,EAAE,EAAE,CAAC;YAChB,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,qBAAqB,MAAM,qCAAqC,EAAE,CAAC;QACrH,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,MAAM,QAAQ,EAAE,CAAC;IAC7E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;IAC5E,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,GAAW;IAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IACrD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,sDAAsD,EAAE,CAAC;IACvG,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAA4B,CAAC;QACtF,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,eAAe,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,cAAc,CAAC,CAAC;QAChH,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,SAAS,CAAC,MAAM,8BAA8B,EAAE,CAAC;QAC5G,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,cAAc,SAAS,CAAC,MAAM,SAAS,EAAE,CAAC;IACvF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC;IACvF,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,GAAW;IAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;IAC3D,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC;IAC7F,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAA2C,CAAC;QACvG,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,uBAAuB,CAAC;QAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QAEnC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,gDAAgD,EAAE,CAAC;QAC1G,CAAC;QAED,IAAI,CAAC;YACH,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;YACtD,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;QACnF,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;QACpF,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC;IACnF,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AASA,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA6G5F"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAUA,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgJ5F"}
@@ -1,5 +1,6 @@
1
1
  import { writeFileSync, readFileSync, mkdirSync, existsSync, rmSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
+ import { execSync } from 'node:child_process';
3
4
  import { defaultConfig } from '../templates/config.js';
4
5
  import { defaultHarnessPack } from '../templates/harness-pack.js';
5
6
  import { starterScenarios } from '../templates/scenarios.js';
@@ -32,6 +33,41 @@ export async function runInit(cwd, flags = {}) {
32
33
  for (const dir of dirs) {
33
34
  mkdirSync(dir, { recursive: true });
34
35
  }
36
+ // Check if we're inside a git repo (Fix 3.6)
37
+ let isGitRepo = true;
38
+ try {
39
+ execSync('git rev-parse --git-dir', {
40
+ cwd,
41
+ encoding: 'utf-8',
42
+ timeout: 5000,
43
+ stdio: ['pipe', 'pipe', 'pipe'],
44
+ });
45
+ }
46
+ catch {
47
+ isGitRepo = false;
48
+ console.log(' ⚠️ Warning: Not inside a git repository. Features like churn analysis, session-progress, and session-summary require git.');
49
+ }
50
+ // Add .codeledger/ and .claude/ to .gitignore (Fix 1.1)
51
+ if (isGitRepo) {
52
+ const gitignorePath = join(cwd, '.gitignore');
53
+ const entriesToAdd = ['.codeledger/', '.claude/'];
54
+ if (existsSync(gitignorePath)) {
55
+ const existing = readFileSync(gitignorePath, 'utf-8');
56
+ const linesToAdd = entriesToAdd.filter((entry) => !existing.split('\n').some((line) => line.trim() === entry));
57
+ if (linesToAdd.length > 0) {
58
+ const suffix = existing.endsWith('\n') ? '' : '\n';
59
+ writeFileSync(gitignorePath, existing + suffix + linesToAdd.join('\n') + '\n');
60
+ console.log(` ✅ Added ${linesToAdd.join(', ')} to .gitignore`);
61
+ }
62
+ else {
63
+ console.log(' ⏭️ .gitignore already contains CodeLedger entries');
64
+ }
65
+ }
66
+ else {
67
+ writeFileSync(gitignorePath, entriesToAdd.join('\n') + '\n');
68
+ console.log(' ✅ Created .gitignore with .codeledger/ and .claude/');
69
+ }
70
+ }
35
71
  // Write config
36
72
  const config = defaultConfig();
37
73
  writeFileSync(join(base, 'config.json'), JSON.stringify(config, null, 2) + '\n');
@@ -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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"}
@@ -0,0 +1,37 @@
1
+ import type { SessionId } from '@codeledger/types';
2
+ import type { DriftResult } from '@codeledger/selector';
3
+ /**
4
+ * `codeledger intent [init|show|set|ack] [--session <id>]`
5
+ *
6
+ * Intent Governance Layer — detect when the user's objective/scope/constraints
7
+ * change mid-session such that the current bundle/plan is likely stale.
8
+ *
9
+ * All drift detection is deterministic: normalized token Jaccard distance,
10
+ * weighted field scoring, no LLM reasoning.
11
+ */
12
+ export declare function runIntent(cwd: string, flags: Record<string, string>): Promise<void>;
13
+ /**
14
+ * Evaluate current drift for a session. Returns null if no intent contract exists.
15
+ * Used by activate, refine, and session-summary for integration.
16
+ */
17
+ export declare function evaluateDrift(cwd: string, sessionId: SessionId | null): {
18
+ drift: DriftResult;
19
+ baselineHash: string;
20
+ currentHash: string;
21
+ } | null;
22
+ /**
23
+ * Check if intent drift requires acknowledgment (CRITICAL level).
24
+ * Returns true if the session is in a "soft block" state.
25
+ */
26
+ export declare function isIntentBlocked(cwd: string, sessionId: SessionId | null): boolean;
27
+ /**
28
+ * Auto-create an intent contract from a task string (called by activate).
29
+ * Only creates if no baseline exists yet for this session.
30
+ */
31
+ export declare function autoInitIntent(cwd: string, sessionId: SessionId | null, taskText: string, scopePaths?: string[]): void;
32
+ /**
33
+ * Update the current contract's objective when task changes (e.g., during refine).
34
+ * Preserves other fields. Only updates if intent was already initialized.
35
+ */
36
+ export declare function updateIntentObjective(cwd: string, sessionId: SessionId | null, newObjective: string): void;
37
+ //# sourceMappingURL=intent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intent.d.ts","sourceRoot":"","sources":["../../src/commands/intent.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAMnD,OAAO,KAAK,EAEV,WAAW,EAEZ,MAAM,sBAAsB,CAAC;AAI9B;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAC7B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,CAqBf;AAqQD;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,SAAS,GAAG,IAAI,GAC1B;IAAE,KAAK,EAAE,WAAW,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAgB1E;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,SAAS,GAAG,IAAI,GAC1B,OAAO,CAgBT;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,SAAS,GAAG,IAAI,EAC3B,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,IAAI,CAwBN;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,SAAS,GAAG,IAAI,EAC3B,YAAY,EAAE,MAAM,GACnB,IAAI,CAoBN"}