@brainfile/cli 0.15.1 → 0.16.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 (59) hide show
  1. package/dist/cli.js +51 -3
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/adr.d.ts.map +1 -1
  4. package/dist/commands/adr.js +16 -3
  5. package/dist/commands/adr.js.map +1 -1
  6. package/dist/commands/complete.d.ts +7 -5
  7. package/dist/commands/complete.d.ts.map +1 -1
  8. package/dist/commands/complete.js +141 -77
  9. package/dist/commands/complete.js.map +1 -1
  10. package/dist/commands/context.d.ts +19 -0
  11. package/dist/commands/context.d.ts.map +1 -0
  12. package/dist/commands/context.js +103 -0
  13. package/dist/commands/context.js.map +1 -0
  14. package/dist/commands/contract.d.ts.map +1 -1
  15. package/dist/commands/contract.js +34 -9
  16. package/dist/commands/contract.js.map +1 -1
  17. package/dist/commands/delete.d.ts.map +1 -1
  18. package/dist/commands/delete.js +19 -5
  19. package/dist/commands/delete.js.map +1 -1
  20. package/dist/commands/history.d.ts +18 -0
  21. package/dist/commands/history.d.ts.map +1 -0
  22. package/dist/commands/history.js +92 -0
  23. package/dist/commands/history.js.map +1 -0
  24. package/dist/commands/ledger-rebuild.d.ts +17 -0
  25. package/dist/commands/ledger-rebuild.d.ts.map +1 -0
  26. package/dist/commands/ledger-rebuild.js +287 -0
  27. package/dist/commands/ledger-rebuild.js.map +1 -0
  28. package/dist/commands/ledger.d.ts +20 -0
  29. package/dist/commands/ledger.d.ts.map +1 -0
  30. package/dist/commands/ledger.js +111 -0
  31. package/dist/commands/ledger.js.map +1 -0
  32. package/dist/commands/mcp.d.ts.map +1 -1
  33. package/dist/commands/mcp.js +371 -4
  34. package/dist/commands/mcp.js.map +1 -1
  35. package/dist/commands/migrate-ledger.d.ts +17 -0
  36. package/dist/commands/migrate-ledger.d.ts.map +1 -0
  37. package/dist/commands/migrate-ledger.js +127 -0
  38. package/dist/commands/migrate-ledger.js.map +1 -0
  39. package/dist/commands/migrate.d.ts +2 -0
  40. package/dist/commands/migrate.d.ts.map +1 -1
  41. package/dist/commands/migrate.js +97 -32
  42. package/dist/commands/migrate.js.map +1 -1
  43. package/dist/commands/move.d.ts.map +1 -1
  44. package/dist/commands/move.js +16 -3
  45. package/dist/commands/move.js.map +1 -1
  46. package/dist/commands/patch.d.ts.map +1 -1
  47. package/dist/commands/patch.js +19 -10
  48. package/dist/commands/patch.js.map +1 -1
  49. package/dist/commands/stats.d.ts +20 -0
  50. package/dist/commands/stats.d.ts.map +1 -0
  51. package/dist/commands/stats.js +151 -0
  52. package/dist/commands/stats.js.map +1 -0
  53. package/dist/lib/contractRunner.js +1 -1
  54. package/dist/lib/contractRunner.js.map +1 -1
  55. package/dist/utils/date-helpers.d.ts +20 -0
  56. package/dist/utils/date-helpers.d.ts.map +1 -0
  57. package/dist/utils/date-helpers.js +54 -0
  58. package/dist/utils/date-helpers.js.map +1 -0
  59. package/package.json +2 -2
@@ -0,0 +1,287 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.ledgerRebuildCommand = ledgerRebuildCommand;
40
+ const fs = __importStar(require("fs"));
41
+ const path = __importStar(require("path"));
42
+ const child_process_1 = require("child_process");
43
+ const chalk_1 = __importDefault(require("chalk"));
44
+ const dist_1 = require("../../../core/dist");
45
+ const logger_1 = require("../utils/logger");
46
+ const cli_error_1 = require("../utils/cli-error");
47
+ const brainfile_path_1 = require("../utils/brainfile-path");
48
+ const v2_detect_1 = require("../utils/v2-detect");
49
+ const COMMIT_MARKER = '__COMMIT__';
50
+ const REBUILT_SUMMARY = 'Rebuilt from git history';
51
+ function runGit(args, cwd) {
52
+ const result = (0, child_process_1.spawnSync)('git', args, {
53
+ cwd,
54
+ encoding: 'utf-8',
55
+ });
56
+ return {
57
+ ok: !result.error && result.status === 0,
58
+ stdout: typeof result.stdout === 'string' ? result.stdout : '',
59
+ stderr: typeof result.stderr === 'string' ? result.stderr : '',
60
+ };
61
+ }
62
+ function normalizeGitPath(value) {
63
+ return value.replace(/\\/g, '/').replace(/^\.\//, '').trim();
64
+ }
65
+ function isPathWithinDirectory(filePath, directory) {
66
+ return filePath === directory || filePath.startsWith(`${directory}/`);
67
+ }
68
+ function isTaskMarkdownInDirectory(filePath, directory) {
69
+ return filePath.endsWith('.md') && isPathWithinDirectory(filePath, directory);
70
+ }
71
+ function toRepoRelativePath(repoRoot, targetPath) {
72
+ const relative = normalizeGitPath(path.relative(repoRoot, targetPath));
73
+ if (!relative || relative.startsWith('..')) {
74
+ throw (0, cli_error_1.operationFailed)(`Path is outside the git repository: ${targetPath}`);
75
+ }
76
+ return relative;
77
+ }
78
+ function resolveRepoRoot(startDir) {
79
+ const result = runGit(['rev-parse', '--show-toplevel'], startDir);
80
+ if (!result.ok) {
81
+ throw (0, cli_error_1.operationFailed)('ledger rebuild requires a git repository');
82
+ }
83
+ const repoRoot = result.stdout.trim();
84
+ if (!repoRoot) {
85
+ throw (0, cli_error_1.operationFailed)('Failed to resolve git repository root for ledger rebuild');
86
+ }
87
+ return path.resolve(repoRoot);
88
+ }
89
+ function parseCompletionEvents(logOutput, boardRel, logsRel) {
90
+ const events = [];
91
+ let currentCommit = '';
92
+ let currentCompletedAt = '';
93
+ for (const rawLine of logOutput.split('\n')) {
94
+ const line = rawLine.trim();
95
+ if (!line) {
96
+ continue;
97
+ }
98
+ if (line.startsWith(COMMIT_MARKER)) {
99
+ const payload = line.slice(COMMIT_MARKER.length);
100
+ const separatorIndex = payload.indexOf('|');
101
+ if (separatorIndex === -1) {
102
+ currentCommit = '';
103
+ currentCompletedAt = '';
104
+ continue;
105
+ }
106
+ currentCommit = payload.slice(0, separatorIndex).trim();
107
+ currentCompletedAt = payload.slice(separatorIndex + 1).trim();
108
+ continue;
109
+ }
110
+ if (!currentCommit) {
111
+ continue;
112
+ }
113
+ const parts = rawLine.split('\t');
114
+ if (parts.length < 2) {
115
+ continue;
116
+ }
117
+ const status = parts[0].trim();
118
+ if (status === 'D') {
119
+ const deletedPath = normalizeGitPath(parts[1] || '');
120
+ if (!isTaskMarkdownInDirectory(deletedPath, boardRel)) {
121
+ continue;
122
+ }
123
+ events.push({
124
+ commit: currentCommit,
125
+ completedAt: currentCompletedAt,
126
+ sourcePath: deletedPath,
127
+ });
128
+ continue;
129
+ }
130
+ if (!status.startsWith('R') || parts.length < 3) {
131
+ continue;
132
+ }
133
+ const sourcePath = normalizeGitPath(parts[1] || '');
134
+ const targetPath = normalizeGitPath(parts[2] || '');
135
+ if (!isTaskMarkdownInDirectory(sourcePath, boardRel)) {
136
+ continue;
137
+ }
138
+ if (!isTaskMarkdownInDirectory(targetPath, logsRel)) {
139
+ continue;
140
+ }
141
+ events.push({
142
+ commit: currentCommit,
143
+ completedAt: currentCompletedAt,
144
+ sourcePath,
145
+ targetPath,
146
+ });
147
+ }
148
+ return events;
149
+ }
150
+ function scanCompletionEvents(repoRoot, boardRel, logsRel) {
151
+ const result = runGit([
152
+ 'log',
153
+ '--reverse',
154
+ '--date=iso-strict',
155
+ `--pretty=format:${COMMIT_MARKER}%H|%cI`,
156
+ '--name-status',
157
+ '--find-renames',
158
+ '--',
159
+ boardRel,
160
+ logsRel,
161
+ ], repoRoot);
162
+ if (!result.ok) {
163
+ const details = result.stderr.trim();
164
+ throw (0, cli_error_1.operationFailed)(details
165
+ ? `Failed to scan git history for ledger rebuild: ${details}`
166
+ : 'Failed to scan git history for ledger rebuild');
167
+ }
168
+ return parseCompletionEvents(result.stdout, boardRel, logsRel);
169
+ }
170
+ function parseIsoDate(value) {
171
+ if (!value) {
172
+ return undefined;
173
+ }
174
+ const parsed = Date.parse(value);
175
+ if (!Number.isFinite(parsed)) {
176
+ return undefined;
177
+ }
178
+ return new Date(parsed).toISOString();
179
+ }
180
+ function readTaskFromHistory(event, repoRoot) {
181
+ const showSpecs = [`${event.commit}^:${event.sourcePath}`, `${event.commit}:${event.sourcePath}`];
182
+ if (event.targetPath) {
183
+ showSpecs.push(`${event.commit}:${event.targetPath}`);
184
+ }
185
+ for (const showSpec of showSpecs) {
186
+ const result = runGit(['show', showSpec], repoRoot);
187
+ if (!result.ok || !result.stdout) {
188
+ continue;
189
+ }
190
+ const parsed = (0, dist_1.parseTaskContent)(result.stdout);
191
+ if (parsed) {
192
+ return parsed;
193
+ }
194
+ }
195
+ return null;
196
+ }
197
+ function inferFilesChangedFromCommit(repoRoot, commit, boardRel, logsRel) {
198
+ const result = runGit(['show', '--pretty=format:', '--name-only', commit], repoRoot);
199
+ if (!result.ok) {
200
+ return [];
201
+ }
202
+ const filesChanged = [];
203
+ const seen = new Set();
204
+ for (const line of result.stdout.split('\n')) {
205
+ const normalized = normalizeGitPath(line);
206
+ if (!normalized || seen.has(normalized)) {
207
+ continue;
208
+ }
209
+ if (isTaskMarkdownInDirectory(normalized, boardRel)) {
210
+ continue;
211
+ }
212
+ if (isTaskMarkdownInDirectory(normalized, logsRel)) {
213
+ continue;
214
+ }
215
+ if (normalized === `${logsRel}/ledger.jsonl`) {
216
+ continue;
217
+ }
218
+ seen.add(normalized);
219
+ filesChanged.push(normalized);
220
+ }
221
+ return filesChanged;
222
+ }
223
+ function buildRebuiltRecord(task, body, completedAt, filesChanged) {
224
+ const record = (0, dist_1.buildLedgerRecord)(task, body, {
225
+ completedAt,
226
+ summary: REBUILT_SUMMARY,
227
+ filesChanged: filesChanged.length > 0 ? filesChanged : undefined,
228
+ });
229
+ // For rebuilds, preserve strict semantics: either inferred files or empty array.
230
+ record.summary = REBUILT_SUMMARY;
231
+ record.filesChanged = filesChanged;
232
+ return record;
233
+ }
234
+ function writeLedger(logsDir, records) {
235
+ fs.mkdirSync(logsDir, { recursive: true });
236
+ const ledgerPath = path.join(logsDir, 'ledger.jsonl');
237
+ const jsonl = records.map((record) => JSON.stringify(record)).join('\n');
238
+ fs.writeFileSync(ledgerPath, jsonl ? `${jsonl}\n` : '', 'utf-8');
239
+ return ledgerPath;
240
+ }
241
+ /**
242
+ * Rebuild `logs/ledger.jsonl` from git history.
243
+ */
244
+ function ledgerRebuildCommand(options, logger = logger_1.defaultLogger) {
245
+ const filePath = (0, brainfile_path_1.resolveCliBrainfilePath)(options.file);
246
+ if (!fs.existsSync(filePath)) {
247
+ throw (0, cli_error_1.fileNotFound)(filePath);
248
+ }
249
+ if (!(0, v2_detect_1.isV2)(filePath)) {
250
+ throw (0, cli_error_1.operationFailed)('ledger rebuild requires v2 per-task file architecture. Run: brainfile migrate');
251
+ }
252
+ const dirs = (0, v2_detect_1.getV2Dirs)(filePath);
253
+ const repoRoot = resolveRepoRoot(path.dirname(filePath));
254
+ const boardRel = toRepoRelativePath(repoRoot, dirs.boardDir);
255
+ const logsRel = toRepoRelativePath(repoRoot, dirs.logsDir);
256
+ const events = scanCompletionEvents(repoRoot, boardRel, logsRel);
257
+ const records = [];
258
+ let skipped = 0;
259
+ for (const event of events) {
260
+ const parsedTask = readTaskFromHistory(event, repoRoot);
261
+ if (!parsedTask) {
262
+ skipped += 1;
263
+ continue;
264
+ }
265
+ const completedAt = parseIsoDate(event.completedAt) ||
266
+ parseIsoDate(parsedTask.task.completedAt) ||
267
+ new Date().toISOString();
268
+ const filesChanged = inferFilesChangedFromCommit(repoRoot, event.commit, boardRel, logsRel);
269
+ const record = buildRebuiltRecord(parsedTask.task, parsedTask.body, completedAt, filesChanged);
270
+ records.push(record);
271
+ }
272
+ const ledgerPath = writeLedger(dirs.logsDir, records);
273
+ const relativeLedgerPath = path.relative(path.dirname(filePath), ledgerPath) || ledgerPath;
274
+ logger.log(chalk_1.default.green('Ledger rebuild complete.'));
275
+ logger.log('');
276
+ logger.log(chalk_1.default.gray(` Rebuilt: ${records.length}`));
277
+ logger.log(chalk_1.default.gray(` Skipped: ${skipped}`));
278
+ logger.log(chalk_1.default.gray(` Ledger: ${relativeLedgerPath}`));
279
+ return {
280
+ success: true,
281
+ rebuilt: records.length,
282
+ skipped,
283
+ ledgerPath,
284
+ records,
285
+ };
286
+ }
287
+ //# sourceMappingURL=ledger-rebuild.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ledger-rebuild.js","sourceRoot":"","sources":["../../src/commands/ledger-rebuild.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { type LedgerRecord } from '../../../core/dist';
2
+ import { type Logger } from '../utils/logger';
3
+ export interface LedgerOptions {
4
+ file: string;
5
+ assignee?: string;
6
+ since?: string;
7
+ until?: string;
8
+ tag?: string;
9
+ contractStatus?: string;
10
+ }
11
+ export interface LedgerResult {
12
+ success: true;
13
+ count: number;
14
+ records: LedgerRecord[];
15
+ }
16
+ /**
17
+ * Query append-only completion ledger records.
18
+ */
19
+ export declare function ledgerCommand(options: LedgerOptions, logger?: Logger): LedgerResult;
20
+ //# sourceMappingURL=ledger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ledger.d.ts","sourceRoot":"","sources":["../../src/commands/ledger.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,MAAM,EAAiB,MAAM,iBAAiB,CAAC;AAM7D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,IAAI,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAqDD;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,GAAE,MAAsB,GAAG,YAAY,CA0BlG"}
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.ledgerCommand = ledgerCommand;
40
+ const fs = __importStar(require("fs"));
41
+ const chalk_1 = __importDefault(require("chalk"));
42
+ const dist_1 = require("../../../core/dist");
43
+ const logger_1 = require("../utils/logger");
44
+ const cli_error_1 = require("../utils/cli-error");
45
+ const brainfile_path_1 = require("../utils/brainfile-path");
46
+ const v2_detect_1 = require("../utils/v2-detect");
47
+ const date_helpers_1 = require("../utils/date-helpers");
48
+ function normalizeContractStatus(value) {
49
+ if (!value) {
50
+ return undefined;
51
+ }
52
+ const normalized = value.trim().toLowerCase();
53
+ if (!(0, dist_1.isLedgerContractStatus)(normalized)) {
54
+ throw (0, cli_error_1.validationError)(`--contract-status must be one of: ${dist_1.LEDGER_CONTRACT_STATUSES.join(', ')} (received: ${value})`);
55
+ }
56
+ return normalized;
57
+ }
58
+ function displayLedgerRecords(records, logger) {
59
+ logger.log('');
60
+ logger.log(chalk_1.default.bold(`Ledger records (${records.length})`));
61
+ logger.log(chalk_1.default.gray('─'.repeat(60)));
62
+ if (records.length === 0) {
63
+ logger.log(chalk_1.default.gray(' No matching records found.'));
64
+ logger.log('');
65
+ return;
66
+ }
67
+ for (const record of records) {
68
+ logger.log(` ${chalk_1.default.gray(`[${record.id}]`)} ${chalk_1.default.white(record.title)} ${chalk_1.default.cyan(`(${record.type})`)}`);
69
+ logger.log(` ${chalk_1.default.gray('Completed:')} ${record.completedAt} ${chalk_1.default.gray('Cycle:')} ${record.cycleTimeHours.toFixed(2)}h`);
70
+ if (record.assignee) {
71
+ logger.log(` ${chalk_1.default.gray('Assignee:')} ${chalk_1.default.white(record.assignee)}`);
72
+ }
73
+ if (record.contractStatus) {
74
+ logger.log(` ${chalk_1.default.gray('Contract:')} ${chalk_1.default.white(record.contractStatus)}`);
75
+ }
76
+ if (record.tags && record.tags.length > 0) {
77
+ logger.log(` ${chalk_1.default.gray('Tags:')} ${record.tags.map((tag) => `#${tag}`).join(' ')}`);
78
+ }
79
+ if (record.filesChanged.length > 0) {
80
+ logger.log(` ${chalk_1.default.gray('Files:')} ${record.filesChanged.join(', ')}`);
81
+ }
82
+ logger.log(` ${chalk_1.default.gray('Summary:')} ${record.summary}`);
83
+ logger.log('');
84
+ }
85
+ }
86
+ /**
87
+ * Query append-only completion ledger records.
88
+ */
89
+ function ledgerCommand(options, logger = logger_1.defaultLogger) {
90
+ const filePath = (0, brainfile_path_1.resolveCliBrainfilePath)(options.file);
91
+ if (!fs.existsSync(filePath)) {
92
+ throw (0, cli_error_1.fileNotFound)(filePath);
93
+ }
94
+ if (!(0, v2_detect_1.isV2)(filePath)) {
95
+ throw (0, cli_error_1.operationFailed)('Ledger command requires v2 per-task file architecture. Run: brainfile migrate');
96
+ }
97
+ const dateRange = (0, date_helpers_1.buildDateRange)(options.since, options.until);
98
+ const contractStatus = normalizeContractStatus(options.contractStatus);
99
+ const assignee = options.assignee?.trim();
100
+ const tag = options.tag?.trim();
101
+ const dirs = (0, v2_detect_1.getV2Dirs)(filePath);
102
+ const records = (0, dist_1.queryLedger)(dirs.logsDir, {
103
+ assignee: assignee || undefined,
104
+ tags: tag ? [tag] : undefined,
105
+ dateRange,
106
+ contractStatus,
107
+ }).sort((left, right) => right.completedAt.localeCompare(left.completedAt));
108
+ displayLedgerRecords(records, logger);
109
+ return { success: true, count: records.length, records };
110
+ }
111
+ //# sourceMappingURL=ledger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/commands/ledger.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoFA,sCA0BC;AA9GD,uCAAyB;AACzB,kDAA0B;AAC1B,6CAM4B;AAC5B,4CAA6D;AAC7D,kDAAoF;AACpF,4DAAkE;AAClE,kDAAqD;AACrD,wDAAuD;AAiBvD,SAAS,uBAAuB,CAAC,KAAc;IAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAA0B,CAAC;IACtE,IAAI,CAAC,IAAA,6BAAsB,EAAC,UAAU,CAAC,EAAE,CAAC;QACxC,MAAM,IAAA,2BAAe,EACnB,qCAAqC,+BAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,KAAK,GAAG,CAChG,CAAC;IACJ,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAuB,EAAE,MAAc;IACnE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACf,MAAM,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mBAAmB,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC7D,MAAM,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAEvC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACf,OAAO;IACT,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,CACR,KAAK,eAAK,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,EAAE,GAAG,CAAC,IAAI,eAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,eAAK,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,CACnG,CAAC;QACF,MAAM,CAAC,GAAG,CACR,OAAO,eAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,WAAW,IAAI,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CACrH,CAAC;QAEF,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,MAAM,CAAC,GAAG,CAAC,OAAO,eAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,eAAK,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC1B,MAAM,CAAC,GAAG,CAAC,OAAO,eAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,eAAK,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;QACrF,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,MAAM,CAAC,GAAG,CAAC,OAAO,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5F,CAAC;QACD,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,CAAC,OAAO,eAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9E,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,OAAO,eAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,OAAsB,EAAE,SAAiB,sBAAa;IAClF,MAAM,QAAQ,GAAG,IAAA,wCAAuB,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAA,wBAAY,EAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI,CAAC,IAAA,gBAAI,EAAC,QAAQ,CAAC,EAAE,CAAC;QACpB,MAAM,IAAA,2BAAe,EAAC,+EAA+E,CAAC,CAAC;IACzG,CAAC;IAED,MAAM,SAAS,GAAG,IAAA,6BAAc,EAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/D,MAAM,cAAc,GAAG,uBAAuB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;IAEhC,MAAM,IAAI,GAAG,IAAA,qBAAS,EAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,OAAO,GAAG,IAAA,kBAAW,EAAC,IAAI,CAAC,OAAO,EAAE;QACxC,QAAQ,EAAE,QAAQ,IAAI,SAAS;QAC/B,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;QAC7B,SAAS;QACT,cAAc;KACf,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAE5E,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAEtC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AAC3D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAyEA,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AA4GD,wBAAsB,UAAU,CAAC,OAAO,EAAE,UAAU,iBAuzEnD"}
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAgFA,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAkMD,wBAAsB,UAAU,CAAC,OAAO,EAAE,UAAU,iBA4oFnD"}