@fractary/core 0.1.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 (139) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +169 -0
  3. package/dist/__tests__/smoke.test.d.ts +7 -0
  4. package/dist/__tests__/smoke.test.d.ts.map +1 -0
  5. package/dist/__tests__/smoke.test.js +132 -0
  6. package/dist/__tests__/smoke.test.js.map +1 -0
  7. package/dist/common/config.d.ts +30 -0
  8. package/dist/common/config.d.ts.map +1 -0
  9. package/dist/common/config.js +120 -0
  10. package/dist/common/config.js.map +1 -0
  11. package/dist/common/errors.d.ts +264 -0
  12. package/dist/common/errors.d.ts.map +1 -0
  13. package/dist/common/errors.js +491 -0
  14. package/dist/common/errors.js.map +1 -0
  15. package/dist/common/index.d.ts +9 -0
  16. package/dist/common/index.d.ts.map +1 -0
  17. package/dist/common/index.js +25 -0
  18. package/dist/common/index.js.map +1 -0
  19. package/dist/common/types.d.ts +622 -0
  20. package/dist/common/types.d.ts.map +1 -0
  21. package/dist/common/types.js +8 -0
  22. package/dist/common/types.js.map +1 -0
  23. package/dist/docs/index.d.ts +8 -0
  24. package/dist/docs/index.d.ts.map +1 -0
  25. package/dist/docs/index.js +26 -0
  26. package/dist/docs/index.js.map +1 -0
  27. package/dist/docs/manager.d.ts +47 -0
  28. package/dist/docs/manager.d.ts.map +1 -0
  29. package/dist/docs/manager.js +250 -0
  30. package/dist/docs/manager.js.map +1 -0
  31. package/dist/docs/types.d.ts +113 -0
  32. package/dist/docs/types.d.ts.map +1 -0
  33. package/dist/docs/types.js +8 -0
  34. package/dist/docs/types.js.map +1 -0
  35. package/dist/file/index.d.ts +9 -0
  36. package/dist/file/index.d.ts.map +1 -0
  37. package/dist/file/index.js +28 -0
  38. package/dist/file/index.js.map +1 -0
  39. package/dist/file/local.d.ts +42 -0
  40. package/dist/file/local.d.ts.map +1 -0
  41. package/dist/file/local.js +137 -0
  42. package/dist/file/local.js.map +1 -0
  43. package/dist/file/manager.d.ts +42 -0
  44. package/dist/file/manager.d.ts.map +1 -0
  45. package/dist/file/manager.js +68 -0
  46. package/dist/file/manager.js.map +1 -0
  47. package/dist/file/types.d.ts +52 -0
  48. package/dist/file/types.d.ts.map +1 -0
  49. package/dist/file/types.js +8 -0
  50. package/dist/file/types.js.map +1 -0
  51. package/dist/index.d.ts +21 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +43 -0
  54. package/dist/index.js.map +1 -0
  55. package/dist/logs/index.d.ts +8 -0
  56. package/dist/logs/index.d.ts.map +1 -0
  57. package/dist/logs/index.js +26 -0
  58. package/dist/logs/index.js.map +1 -0
  59. package/dist/logs/manager.d.ts +97 -0
  60. package/dist/logs/manager.d.ts.map +1 -0
  61. package/dist/logs/manager.js +584 -0
  62. package/dist/logs/manager.js.map +1 -0
  63. package/dist/logs/types.d.ts +45 -0
  64. package/dist/logs/types.d.ts.map +1 -0
  65. package/dist/logs/types.js +8 -0
  66. package/dist/logs/types.js.map +1 -0
  67. package/dist/repo/git.d.ts +182 -0
  68. package/dist/repo/git.d.ts.map +1 -0
  69. package/dist/repo/git.js +496 -0
  70. package/dist/repo/git.js.map +1 -0
  71. package/dist/repo/index.d.ts +10 -0
  72. package/dist/repo/index.d.ts.map +1 -0
  73. package/dist/repo/index.js +29 -0
  74. package/dist/repo/index.js.map +1 -0
  75. package/dist/repo/manager.d.ts +179 -0
  76. package/dist/repo/manager.d.ts.map +1 -0
  77. package/dist/repo/manager.js +433 -0
  78. package/dist/repo/manager.js.map +1 -0
  79. package/dist/repo/providers/bitbucket.d.ts +48 -0
  80. package/dist/repo/providers/bitbucket.d.ts.map +1 -0
  81. package/dist/repo/providers/bitbucket.js +86 -0
  82. package/dist/repo/providers/bitbucket.js.map +1 -0
  83. package/dist/repo/providers/github.d.ts +30 -0
  84. package/dist/repo/providers/github.d.ts.map +1 -0
  85. package/dist/repo/providers/github.js +311 -0
  86. package/dist/repo/providers/github.js.map +1 -0
  87. package/dist/repo/providers/gitlab.d.ts +47 -0
  88. package/dist/repo/providers/gitlab.d.ts.map +1 -0
  89. package/dist/repo/providers/gitlab.js +84 -0
  90. package/dist/repo/providers/gitlab.js.map +1 -0
  91. package/dist/repo/providers/index.d.ts +9 -0
  92. package/dist/repo/providers/index.d.ts.map +1 -0
  93. package/dist/repo/providers/index.js +15 -0
  94. package/dist/repo/providers/index.js.map +1 -0
  95. package/dist/repo/types.d.ts +48 -0
  96. package/dist/repo/types.d.ts.map +1 -0
  97. package/dist/repo/types.js +8 -0
  98. package/dist/repo/types.js.map +1 -0
  99. package/dist/spec/index.d.ts +9 -0
  100. package/dist/spec/index.d.ts.map +1 -0
  101. package/dist/spec/index.js +30 -0
  102. package/dist/spec/index.js.map +1 -0
  103. package/dist/spec/manager.d.ts +106 -0
  104. package/dist/spec/manager.d.ts.map +1 -0
  105. package/dist/spec/manager.js +672 -0
  106. package/dist/spec/manager.js.map +1 -0
  107. package/dist/spec/templates.d.ts +28 -0
  108. package/dist/spec/templates.d.ts.map +1 -0
  109. package/dist/spec/templates.js +357 -0
  110. package/dist/spec/templates.js.map +1 -0
  111. package/dist/spec/types.d.ts +53 -0
  112. package/dist/spec/types.d.ts.map +1 -0
  113. package/dist/spec/types.js +8 -0
  114. package/dist/spec/types.js.map +1 -0
  115. package/dist/work/index.d.ts +8 -0
  116. package/dist/work/index.d.ts.map +1 -0
  117. package/dist/work/index.js +26 -0
  118. package/dist/work/index.js.map +1 -0
  119. package/dist/work/manager.d.ts +112 -0
  120. package/dist/work/manager.d.ts.map +1 -0
  121. package/dist/work/manager.js +227 -0
  122. package/dist/work/manager.js.map +1 -0
  123. package/dist/work/providers/github.d.ts +40 -0
  124. package/dist/work/providers/github.d.ts.map +1 -0
  125. package/dist/work/providers/github.js +299 -0
  126. package/dist/work/providers/github.js.map +1 -0
  127. package/dist/work/providers/jira.d.ts +60 -0
  128. package/dist/work/providers/jira.d.ts.map +1 -0
  129. package/dist/work/providers/jira.js +109 -0
  130. package/dist/work/providers/jira.js.map +1 -0
  131. package/dist/work/providers/linear.d.ts +57 -0
  132. package/dist/work/providers/linear.d.ts.map +1 -0
  133. package/dist/work/providers/linear.js +103 -0
  134. package/dist/work/providers/linear.js.map +1 -0
  135. package/dist/work/types.d.ts +42 -0
  136. package/dist/work/types.d.ts.map +1 -0
  137. package/dist/work/types.js +8 -0
  138. package/dist/work/types.js.map +1 -0
  139. package/package.json +102 -0
@@ -0,0 +1,584 @@
1
+ "use strict";
2
+ /**
3
+ * @fractary/faber - Log Manager
4
+ *
5
+ * Session and operational logging for FABER workflows.
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.LogManager = void 0;
42
+ const fs = __importStar(require("fs"));
43
+ const path = __importStar(require("path"));
44
+ const config_1 = require("../common/config");
45
+ const errors_1 = require("../common/errors");
46
+ /**
47
+ * Generate a unique log ID
48
+ */
49
+ function generateLogId() {
50
+ const timestamp = Date.now().toString(36);
51
+ const random = Math.random().toString(36).substring(2, 6);
52
+ return `LOG-${timestamp}-${random}`.toUpperCase();
53
+ }
54
+ /**
55
+ * Generate a session ID
56
+ */
57
+ function generateSessionId() {
58
+ const timestamp = Date.now().toString(36);
59
+ const random = Math.random().toString(36).substring(2, 8);
60
+ return `SESSION-${timestamp}-${random}`.toUpperCase();
61
+ }
62
+ /**
63
+ * Get date string for directory structure
64
+ */
65
+ function getDatePath() {
66
+ const now = new Date();
67
+ const year = now.getFullYear();
68
+ const month = String(now.getMonth() + 1).padStart(2, '0');
69
+ const day = String(now.getDate()).padStart(2, '0');
70
+ return `${year}/${month}/${day}`;
71
+ }
72
+ /**
73
+ * Parse log frontmatter
74
+ */
75
+ function parseLogFrontmatter(content) {
76
+ const match = content.match(/^---\n([\s\S]*?)\n---/);
77
+ if (!match)
78
+ return {};
79
+ const frontmatter = {};
80
+ for (const line of match[1].split('\n')) {
81
+ const lineMatch = line.match(/^(\w+):\s*(.*)$/);
82
+ if (lineMatch) {
83
+ const [, key, value] = lineMatch;
84
+ frontmatter[key] = value.replace(/^["']|["']$/g, '');
85
+ }
86
+ }
87
+ return frontmatter;
88
+ }
89
+ /**
90
+ * Redact sensitive patterns from content
91
+ */
92
+ function redactSensitive(content) {
93
+ const patterns = [
94
+ // API keys and tokens
95
+ { pattern: /([A-Za-z0-9_-]{20,})/g, replace: '[REDACTED_TOKEN]' },
96
+ // Passwords in URLs
97
+ { pattern: /:([^:@\s]{8,})@/g, replace: ':[REDACTED]@' },
98
+ // Bearer tokens
99
+ { pattern: /(Bearer\s+)[A-Za-z0-9._-]+/gi, replace: '$1[REDACTED]' },
100
+ // AWS keys
101
+ { pattern: /(AKIA|ABIA|ACCA|ASIA)[A-Z0-9]{16}/g, replace: '[REDACTED_AWS_KEY]' },
102
+ // GitHub tokens
103
+ { pattern: /ghp_[A-Za-z0-9]{36}/g, replace: '[REDACTED_GH_TOKEN]' },
104
+ { pattern: /gho_[A-Za-z0-9]{36}/g, replace: '[REDACTED_GH_TOKEN]' },
105
+ { pattern: /github_pat_[A-Za-z0-9_]{22,}/g, replace: '[REDACTED_GH_TOKEN]' },
106
+ ];
107
+ let redacted = content;
108
+ for (const { pattern, replace } of patterns) {
109
+ redacted = redacted.replace(pattern, replace);
110
+ }
111
+ return redacted;
112
+ }
113
+ /**
114
+ * Log Manager
115
+ *
116
+ * Handles session logging, build logs, and operational logs.
117
+ */
118
+ class LogManager {
119
+ config;
120
+ logsDir;
121
+ activeSession = null;
122
+ constructor(config) {
123
+ const projectRoot = (0, config_1.findProjectRoot)();
124
+ const defaultConfig = {
125
+ localPath: path.join(projectRoot, '.fractary/logs'),
126
+ };
127
+ this.config = config || (0, config_1.loadLogConfig)() || defaultConfig;
128
+ this.logsDir = this.config.localPath || path.join(projectRoot, 'logs');
129
+ }
130
+ /**
131
+ * Ensure logs directory exists
132
+ */
133
+ ensureLogsDir(subDir) {
134
+ const dir = subDir ? path.join(this.logsDir, subDir) : this.logsDir;
135
+ if (!fs.existsSync(dir)) {
136
+ fs.mkdirSync(dir, { recursive: true });
137
+ }
138
+ return dir;
139
+ }
140
+ /**
141
+ * Get log directory for a type
142
+ */
143
+ getTypeDir(type) {
144
+ return path.join(this.logsDir, type);
145
+ }
146
+ // =========================================================================
147
+ // Log CRUD Operations
148
+ // =========================================================================
149
+ /**
150
+ * Write a new log entry
151
+ */
152
+ writeLog(options) {
153
+ this.ensureLogsDir(options.type);
154
+ const dateDir = this.ensureLogsDir(path.join(options.type, getDatePath()));
155
+ const id = generateLogId();
156
+ const timestamp = new Date().toISOString();
157
+ const slug = options.title
158
+ .toLowerCase()
159
+ .replace(/[^a-z0-9]+/g, '-')
160
+ .replace(/^-|-$/g, '')
161
+ .slice(0, 40);
162
+ const filename = `${id}-${slug}.md`;
163
+ const filePath = path.join(dateDir, filename);
164
+ // Build content
165
+ const lines = [];
166
+ lines.push('---');
167
+ lines.push(`id: ${id}`);
168
+ lines.push(`type: ${options.type}`);
169
+ lines.push(`title: "${options.title}"`);
170
+ lines.push(`date: ${timestamp}`);
171
+ lines.push(`status: active`);
172
+ if (options.issueNumber) {
173
+ lines.push(`issue_number: ${options.issueNumber}`);
174
+ }
175
+ if (options.metadata?.repository) {
176
+ lines.push(`repository: "${options.metadata.repository}"`);
177
+ }
178
+ if (options.metadata?.branch) {
179
+ lines.push(`branch: "${options.metadata.branch}"`);
180
+ }
181
+ lines.push('---');
182
+ lines.push('');
183
+ lines.push(`# ${options.title}`);
184
+ lines.push('');
185
+ lines.push(options.content);
186
+ const content = lines.join('\n');
187
+ fs.writeFileSync(filePath, content, 'utf-8');
188
+ return {
189
+ id,
190
+ type: options.type,
191
+ path: filePath,
192
+ title: options.title,
193
+ content: options.content,
194
+ metadata: {
195
+ date: timestamp,
196
+ status: 'active',
197
+ issue_number: options.issueNumber,
198
+ repository: options.metadata?.repository,
199
+ branch: options.metadata?.branch,
200
+ },
201
+ size_bytes: Buffer.byteLength(content, 'utf-8'),
202
+ };
203
+ }
204
+ /**
205
+ * Read a log entry by path or ID
206
+ */
207
+ readLog(idOrPath) {
208
+ let filePath = idOrPath;
209
+ // If it's an ID, search for the file
210
+ if (!path.isAbsolute(idOrPath) && !idOrPath.endsWith('.md')) {
211
+ const found = this.findLogById(idOrPath);
212
+ if (!found)
213
+ return null;
214
+ filePath = found;
215
+ }
216
+ if (!fs.existsSync(filePath)) {
217
+ return null;
218
+ }
219
+ const content = fs.readFileSync(filePath, 'utf-8');
220
+ const frontmatter = parseLogFrontmatter(content);
221
+ // Extract body (after frontmatter)
222
+ const bodyMatch = content.match(/^---\n[\s\S]*?\n---\n([\s\S]*)$/);
223
+ const body = bodyMatch ? bodyMatch[1] : content;
224
+ return {
225
+ id: frontmatter.id || path.basename(filePath, '.md'),
226
+ type: frontmatter.type || 'operational',
227
+ path: filePath,
228
+ title: frontmatter.title || 'Untitled',
229
+ content: body,
230
+ metadata: {
231
+ date: frontmatter.date || '',
232
+ status: frontmatter.status || 'active',
233
+ issue_number: frontmatter.issue_number ? parseInt(frontmatter.issue_number, 10) : undefined,
234
+ repository: frontmatter.repository,
235
+ branch: frontmatter.branch,
236
+ },
237
+ size_bytes: Buffer.byteLength(content, 'utf-8'),
238
+ };
239
+ }
240
+ /**
241
+ * Find a log by ID
242
+ */
243
+ findLogById(id) {
244
+ // Search through all type directories
245
+ const types = ['session', 'build', 'deployment', 'test', 'debug', 'audit', 'operational', 'workflow'];
246
+ for (const type of types) {
247
+ const typeDir = this.getTypeDir(type);
248
+ if (!fs.existsSync(typeDir))
249
+ continue;
250
+ const found = this.searchDirForId(typeDir, id);
251
+ if (found)
252
+ return found;
253
+ }
254
+ return null;
255
+ }
256
+ /**
257
+ * Recursively search directory for log ID
258
+ */
259
+ searchDirForId(dir, id) {
260
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
261
+ for (const entry of entries) {
262
+ const fullPath = path.join(dir, entry.name);
263
+ if (entry.isDirectory()) {
264
+ const found = this.searchDirForId(fullPath, id);
265
+ if (found)
266
+ return found;
267
+ }
268
+ else if (entry.name.startsWith(id) && entry.name.endsWith('.md')) {
269
+ return fullPath;
270
+ }
271
+ }
272
+ return null;
273
+ }
274
+ /**
275
+ * Append to an existing log
276
+ */
277
+ appendToLog(idOrPath, options) {
278
+ const log = this.readLog(idOrPath);
279
+ if (!log) {
280
+ throw new errors_1.LogError('append', `Log not found: ${idOrPath}`);
281
+ }
282
+ const timestamp = options.timestamp || new Date().toISOString();
283
+ let content = options.content;
284
+ // Redact if needed
285
+ if (this.config.sessionLogging?.redactSensitive) {
286
+ content = redactSensitive(content);
287
+ }
288
+ // Build append content
289
+ const lines = [];
290
+ lines.push('');
291
+ lines.push(`### [${timestamp}] ${options.role.toUpperCase()}`);
292
+ lines.push('');
293
+ lines.push(content);
294
+ // Append to file
295
+ fs.appendFileSync(log.path, lines.join('\n'), 'utf-8');
296
+ // Return updated log
297
+ return this.readLog(log.path);
298
+ }
299
+ /**
300
+ * Update log status
301
+ */
302
+ updateLogStatus(idOrPath, status) {
303
+ const log = this.readLog(idOrPath);
304
+ if (!log) {
305
+ throw new errors_1.LogError('updateStatus', `Log not found: ${idOrPath}`);
306
+ }
307
+ // Read full content and update frontmatter
308
+ let content = fs.readFileSync(log.path, 'utf-8');
309
+ content = content.replace(/status:\s*\w+/, `status: ${status}`);
310
+ fs.writeFileSync(log.path, content, 'utf-8');
311
+ return this.readLog(log.path);
312
+ }
313
+ /**
314
+ * List logs
315
+ */
316
+ listLogs(options) {
317
+ const logs = [];
318
+ const types = options?.type
319
+ ? [options.type]
320
+ : ['session', 'build', 'deployment', 'test', 'debug', 'audit', 'operational', 'workflow'];
321
+ for (const type of types) {
322
+ const typeDir = this.getTypeDir(type);
323
+ if (!fs.existsSync(typeDir))
324
+ continue;
325
+ this.collectLogsFromDir(typeDir, logs, options);
326
+ }
327
+ // Sort by date descending
328
+ logs.sort((a, b) => new Date(b.metadata.date).getTime() - new Date(a.metadata.date).getTime());
329
+ // Apply limit
330
+ if (options?.limit) {
331
+ return logs.slice(0, options.limit);
332
+ }
333
+ return logs;
334
+ }
335
+ /**
336
+ * Recursively collect logs from directory
337
+ */
338
+ collectLogsFromDir(dir, logs, options) {
339
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
340
+ for (const entry of entries) {
341
+ const fullPath = path.join(dir, entry.name);
342
+ if (entry.isDirectory()) {
343
+ this.collectLogsFromDir(fullPath, logs, options);
344
+ }
345
+ else if (entry.name.endsWith('.md')) {
346
+ try {
347
+ const log = this.readLog(fullPath);
348
+ if (!log)
349
+ continue;
350
+ // Apply filters
351
+ if (options?.status && log.metadata.status !== options.status)
352
+ continue;
353
+ if (options?.issueNumber && log.metadata.issue_number !== options.issueNumber)
354
+ continue;
355
+ if (options?.since && new Date(log.metadata.date) < new Date(options.since))
356
+ continue;
357
+ if (options?.until && new Date(log.metadata.date) > new Date(options.until))
358
+ continue;
359
+ logs.push(log);
360
+ }
361
+ catch {
362
+ // Skip invalid log files
363
+ }
364
+ }
365
+ }
366
+ }
367
+ /**
368
+ * Search logs
369
+ */
370
+ searchLogs(options) {
371
+ const results = [];
372
+ const logs = this.listLogs({
373
+ type: options.type,
374
+ issueNumber: options.issueNumber,
375
+ since: options.since,
376
+ until: options.until,
377
+ });
378
+ for (const log of logs) {
379
+ const content = fs.readFileSync(log.path, 'utf-8');
380
+ const lines = content.split('\n');
381
+ const snippets = [];
382
+ const lineNumbers = [];
383
+ const pattern = options.regex
384
+ ? new RegExp(options.query, 'gi')
385
+ : new RegExp(options.query.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'gi');
386
+ lines.forEach((line, index) => {
387
+ if (pattern.test(line)) {
388
+ snippets.push(line);
389
+ lineNumbers.push(index + 1);
390
+ }
391
+ });
392
+ if (snippets.length > 0) {
393
+ results.push({ log, snippets, lineNumbers });
394
+ }
395
+ }
396
+ return results;
397
+ }
398
+ /**
399
+ * Delete a log
400
+ */
401
+ deleteLog(idOrPath) {
402
+ const log = this.readLog(idOrPath);
403
+ if (!log)
404
+ return false;
405
+ fs.unlinkSync(log.path);
406
+ return true;
407
+ }
408
+ // =========================================================================
409
+ // Session Capture
410
+ // =========================================================================
411
+ /**
412
+ * Start session capture
413
+ */
414
+ startCapture(options) {
415
+ if (this.activeSession) {
416
+ throw new errors_1.LogError('capture', 'A capture session is already active');
417
+ }
418
+ const sessionId = generateSessionId();
419
+ const dateDir = this.ensureLogsDir(path.join('session', getDatePath()));
420
+ const filename = `${sessionId}-issue-${options.issueNumber}.md`;
421
+ const logPath = path.join(dateDir, filename);
422
+ // Create initial log
423
+ const content = [
424
+ '---',
425
+ `id: ${sessionId}`,
426
+ 'type: session',
427
+ `title: "Session Capture - Issue #${options.issueNumber}"`,
428
+ `date: ${new Date().toISOString()}`,
429
+ 'status: active',
430
+ `issue_number: ${options.issueNumber}`,
431
+ options.model ? `model: "${options.model}"` : '',
432
+ '---',
433
+ '',
434
+ `# Session Capture - Issue #${options.issueNumber}`,
435
+ '',
436
+ `**Started:** ${new Date().toISOString()}`,
437
+ options.model ? `**Model:** ${options.model}` : '',
438
+ '',
439
+ '---',
440
+ '',
441
+ ].filter(Boolean).join('\n');
442
+ fs.writeFileSync(logPath, content, 'utf-8');
443
+ // Store active session
444
+ this.activeSession = {
445
+ sessionId,
446
+ logPath,
447
+ issueNumber: options.issueNumber,
448
+ startTime: new Date().toISOString(),
449
+ status: 'active',
450
+ redactSensitive: options.redactSensitive ?? this.config.sessionLogging?.redactSensitive ?? true,
451
+ model: options.model,
452
+ messageCount: 0,
453
+ };
454
+ return {
455
+ sessionId,
456
+ logPath,
457
+ issueNumber: options.issueNumber,
458
+ status: 'active',
459
+ };
460
+ }
461
+ /**
462
+ * Stop session capture
463
+ */
464
+ stopCapture() {
465
+ if (!this.activeSession) {
466
+ return null;
467
+ }
468
+ const session = this.activeSession;
469
+ // Update log with completion info
470
+ const footer = [
471
+ '',
472
+ '---',
473
+ '',
474
+ '## Session Summary',
475
+ '',
476
+ `**Ended:** ${new Date().toISOString()}`,
477
+ `**Duration:** ${this.calculateDuration(session.startTime)}`,
478
+ `**Messages:** ${session.messageCount}`,
479
+ '',
480
+ ].join('\n');
481
+ fs.appendFileSync(session.logPath, footer, 'utf-8');
482
+ // Update status in frontmatter
483
+ let content = fs.readFileSync(session.logPath, 'utf-8');
484
+ content = content.replace(/status:\s*active/, 'status: completed');
485
+ fs.writeFileSync(session.logPath, content, 'utf-8');
486
+ // Clear active session
487
+ this.activeSession = null;
488
+ return {
489
+ sessionId: session.sessionId,
490
+ logPath: session.logPath,
491
+ issueNumber: session.issueNumber,
492
+ status: 'stopped',
493
+ };
494
+ }
495
+ /**
496
+ * Get active capture session
497
+ */
498
+ getActiveCapture() {
499
+ return this.activeSession;
500
+ }
501
+ /**
502
+ * Log a message to the active capture session
503
+ */
504
+ logMessage(role, content) {
505
+ if (!this.activeSession) {
506
+ return; // Silently ignore if no active session
507
+ }
508
+ let processedContent = content;
509
+ if (this.activeSession.redactSensitive) {
510
+ processedContent = redactSensitive(content);
511
+ }
512
+ const timestamp = new Date().toISOString();
513
+ const entry = [
514
+ '',
515
+ `### [${timestamp}] ${role.toUpperCase()}`,
516
+ '',
517
+ processedContent,
518
+ ].join('\n');
519
+ fs.appendFileSync(this.activeSession.logPath, entry, 'utf-8');
520
+ this.activeSession.messageCount++;
521
+ }
522
+ // =========================================================================
523
+ // Archival
524
+ // =========================================================================
525
+ /**
526
+ * Archive old logs
527
+ */
528
+ archiveLogs(options) {
529
+ const maxAge = options?.maxAgeDays || 30;
530
+ const cutoffDate = new Date();
531
+ cutoffDate.setDate(cutoffDate.getDate() - maxAge);
532
+ const result = {
533
+ archived: [],
534
+ deleted: [],
535
+ errors: [],
536
+ };
537
+ const logs = this.listLogs();
538
+ for (const log of logs) {
539
+ const logDate = new Date(log.metadata.date);
540
+ if (logDate < cutoffDate) {
541
+ try {
542
+ // For now, just mark as archived in the result
543
+ // Could implement actual archival (compression, moving to archive dir, etc.)
544
+ result.archived.push(log.path);
545
+ }
546
+ catch (error) {
547
+ result.errors.push(`Failed to archive ${log.path}: ${error}`);
548
+ }
549
+ }
550
+ }
551
+ return result;
552
+ }
553
+ // =========================================================================
554
+ // Helpers
555
+ // =========================================================================
556
+ /**
557
+ * Calculate duration from start time to now
558
+ */
559
+ calculateDuration(startTime) {
560
+ const start = new Date(startTime).getTime();
561
+ const end = Date.now();
562
+ const durationMs = end - start;
563
+ const hours = Math.floor(durationMs / (1000 * 60 * 60));
564
+ const minutes = Math.floor((durationMs % (1000 * 60 * 60)) / (1000 * 60));
565
+ const seconds = Math.floor((durationMs % (1000 * 60)) / 1000);
566
+ if (hours > 0) {
567
+ return `${hours}h ${minutes}m ${seconds}s`;
568
+ }
569
+ else if (minutes > 0) {
570
+ return `${minutes}m ${seconds}s`;
571
+ }
572
+ else {
573
+ return `${seconds}s`;
574
+ }
575
+ }
576
+ /**
577
+ * Get logs directory path
578
+ */
579
+ getLogsDir() {
580
+ return this.logsDir;
581
+ }
582
+ }
583
+ exports.LogManager = LogManager;
584
+ //# sourceMappingURL=manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/logs/manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * @fractary/faber - Logs Module Types
3
+ *
4
+ * Re-exports from main types + logs-specific interfaces.
5
+ */
6
+ export { LogConfig, LogType, LogEntry, LogMetadata, LogStatus, LogWriteOptions, LogListOptions, LogSearchOptions, LogSearchResult, SessionState, CaptureStartOptions, CaptureResult, } from '../common/types';
7
+ /**
8
+ * Session capture state stored in state module
9
+ */
10
+ export interface CaptureSession {
11
+ sessionId: string;
12
+ logPath: string;
13
+ issueNumber: number;
14
+ startTime: string;
15
+ status: 'active' | 'stopped';
16
+ redactSensitive: boolean;
17
+ model?: string;
18
+ messageCount: number;
19
+ }
20
+ /**
21
+ * Log append options
22
+ */
23
+ export interface LogAppendOptions {
24
+ role: 'user' | 'assistant' | 'system';
25
+ content: string;
26
+ timestamp?: string;
27
+ metadata?: Record<string, unknown>;
28
+ }
29
+ /**
30
+ * Log rotation options
31
+ */
32
+ export interface LogRotationOptions {
33
+ maxSize?: number;
34
+ maxAge?: number;
35
+ compress?: boolean;
36
+ }
37
+ /**
38
+ * Archive result
39
+ */
40
+ export interface ArchiveResult {
41
+ archived: string[];
42
+ deleted: string[];
43
+ errors: string[];
44
+ }
45
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/logs/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,SAAS,EACT,OAAO,EACP,QAAQ,EACR,WAAW,EACX,SAAS,EACT,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,aAAa,GACd,MAAM,iBAAiB,CAAC;AAEzB;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC7B,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ /**
3
+ * @fractary/faber - Logs Module Types
4
+ *
5
+ * Re-exports from main types + logs-specific interfaces.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/logs/types.ts"],"names":[],"mappings":";AAAA;;;;GAIG"}