faf-cli 2.1.7 → 2.2.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.
@@ -0,0 +1,598 @@
1
+ "use strict";
2
+ /**
3
+ * 🏎️ FAF Scoring Compiler
4
+ * Deterministic, multi-pass compiler for .faf scoring
5
+ *
6
+ * Philosophy: Like Svelte, we compile away the complexity
7
+ * Result: Pure, traceable, reproducible scores
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.FafCompiler = void 0;
44
+ exports.compile = compile;
45
+ exports.compileWithTrace = compileWithTrace;
46
+ exports.verify = verify;
47
+ const YAML = __importStar(require("yaml"));
48
+ const crypto = __importStar(require("crypto"));
49
+ const fab_formats_processor_1 = require("../engines/fab-formats-processor");
50
+ const path = __importStar(require("path"));
51
+ // ============================================================================
52
+ // Main Compiler Class
53
+ // ============================================================================
54
+ class FafCompiler {
55
+ static VERSION = '3.0.0-compiler';
56
+ static COMPILER_ID = 'faf-compiler-v3';
57
+ diagnostics = [];
58
+ trace;
59
+ ir;
60
+ constructor() {
61
+ this.trace = {
62
+ version: FafCompiler.VERSION,
63
+ timestamp: new Date().toISOString(),
64
+ inputHash: '',
65
+ passes: []
66
+ };
67
+ this.ir = {
68
+ version: FafCompiler.VERSION,
69
+ slots: [],
70
+ metadata: {}
71
+ };
72
+ }
73
+ /**
74
+ * Main compilation pipeline
75
+ */
76
+ async compile(fafPath) {
77
+ // Reset state for new compilation
78
+ this.diagnostics = [];
79
+ this.trace.passes = [];
80
+ this.ir.slots = [];
81
+ try {
82
+ // PASS 1: Parse
83
+ const source = await this.readSource(fafPath);
84
+ const ast = this.parse(source);
85
+ // PASS 2: Analyze
86
+ const analyzed = this.analyze(ast);
87
+ // PASS 3: Optimize (with discovery)
88
+ const optimized = await this.optimize(analyzed, fafPath);
89
+ // PASS 4: Generate
90
+ const result = this.generate(optimized);
91
+ // Add final checksum
92
+ const checksum = this.calculateChecksum(result);
93
+ return {
94
+ ...result,
95
+ trace: this.trace,
96
+ diagnostics: this.diagnostics,
97
+ ir: this.ir,
98
+ checksum
99
+ };
100
+ }
101
+ catch (error) {
102
+ const message = error instanceof Error ? error.message : String(error);
103
+ this.addDiagnostic('error', `Compilation failed: ${message}`);
104
+ throw error;
105
+ }
106
+ }
107
+ // ============================================================================
108
+ // PASS 1: Parser
109
+ // ============================================================================
110
+ async readSource(fafPath) {
111
+ const start = Date.now();
112
+ const fs = await Promise.resolve().then(() => __importStar(require('fs/promises')));
113
+ try {
114
+ const source = await fs.readFile(fafPath, 'utf-8');
115
+ this.trace.inputHash = crypto.createHash('md5').update(source).digest('hex');
116
+ this.recordPass('read', start, fafPath, source.length, [
117
+ `Read ${source.length} bytes from ${fafPath}`
118
+ ]);
119
+ return source;
120
+ }
121
+ catch (error) {
122
+ const message = error instanceof Error ? error.message : String(error);
123
+ this.addDiagnostic('error', `Cannot read file: ${fafPath}`, undefined, message);
124
+ throw error;
125
+ }
126
+ }
127
+ parse(source) {
128
+ const start = Date.now();
129
+ try {
130
+ const ast = YAML.parse(source);
131
+ if (!ast || typeof ast !== 'object') {
132
+ this.addDiagnostic('error', 'Invalid YAML: must be an object');
133
+ return {};
134
+ }
135
+ this.recordPass('parse', start, source.length, ast, [
136
+ `Parsed YAML into AST with ${Object.keys(ast).length} top-level keys`
137
+ ]);
138
+ return ast;
139
+ }
140
+ catch (error) {
141
+ const message = error instanceof Error ? error.message : String(error);
142
+ this.addDiagnostic('error', `Parse error: ${message}`);
143
+ return {};
144
+ }
145
+ }
146
+ // ============================================================================
147
+ // PASS 2: Analyzer
148
+ // ============================================================================
149
+ analyze(ast) {
150
+ const start = Date.now();
151
+ const analyzed = { ...ast };
152
+ const changes = [];
153
+ // Validate and normalize structure
154
+ if (!analyzed.project) {
155
+ analyzed.project = {};
156
+ changes.push('Added missing project section');
157
+ }
158
+ if (!analyzed.stack) {
159
+ analyzed.stack = {};
160
+ changes.push('Added missing stack section');
161
+ }
162
+ if (!analyzed.human_context) {
163
+ analyzed.human_context = {};
164
+ changes.push('Added missing human_context section');
165
+ }
166
+ // Type validation
167
+ this.validateTypes(analyzed);
168
+ // Check for deprecated fields
169
+ if (analyzed.ai_score !== undefined) {
170
+ this.addDiagnostic('warning', 'Embedded ai_score is deprecated and will be ignored');
171
+ delete analyzed.ai_score;
172
+ changes.push('Removed deprecated ai_score');
173
+ }
174
+ this.recordPass('analyze', start, ast, analyzed, changes);
175
+ return analyzed;
176
+ }
177
+ validateTypes(data) {
178
+ // Project validation
179
+ if (data.project?.name && typeof data.project.name !== 'string') {
180
+ this.addDiagnostic('error', 'project.name must be a string', {
181
+ line: 0, column: 0, field: 'project.name'
182
+ });
183
+ }
184
+ // Stack validation
185
+ const stackFields = ['frontend', 'backend', 'database', 'hosting'];
186
+ for (const field of stackFields) {
187
+ if (data.stack?.[field] && typeof data.stack[field] !== 'string') {
188
+ this.addDiagnostic('error', `stack.${field} must be a string`, {
189
+ line: 0, column: 0, field: `stack.${field}`
190
+ });
191
+ }
192
+ }
193
+ // Human context validation
194
+ const humanFields = ['who', 'what', 'why', 'where', 'when', 'how'];
195
+ for (const field of humanFields) {
196
+ const value = data.human_context?.[field];
197
+ if (value && typeof value !== 'string' && typeof value !== 'object') {
198
+ this.addDiagnostic('warning', `human_context.${field} should be a string or object`);
199
+ }
200
+ }
201
+ }
202
+ // ============================================================================
203
+ // PASS 3: Optimizer (with Discovery)
204
+ // ============================================================================
205
+ async optimize(ast, fafPath) {
206
+ const start = Date.now();
207
+ const optimized = { ...ast };
208
+ const changes = [];
209
+ // Discovery phase
210
+ if (fafPath) {
211
+ try {
212
+ const projectDir = path.dirname(fafPath);
213
+ const discovered = await this.discover(projectDir);
214
+ // Apply discovered values WITHOUT mutation
215
+ optimized._discovered = discovered;
216
+ changes.push(`Discovered ${Object.keys(discovered).length} items`);
217
+ }
218
+ catch (error) {
219
+ const message = error instanceof Error ? error.message : String(error);
220
+ this.addDiagnostic('warning', `Discovery failed: ${message}`);
221
+ }
222
+ }
223
+ // Remove None/Unknown values (optimization)
224
+ this.removeDefaults(optimized, changes);
225
+ this.recordPass('optimize', start, ast, optimized, changes);
226
+ return optimized;
227
+ }
228
+ async discover(projectDir) {
229
+ const processor = new fab_formats_processor_1.FabFormatsProcessor();
230
+ const analysis = await processor.processFiles(projectDir);
231
+ const discovered = {};
232
+ if (analysis.context) {
233
+ const ctx = analysis.context;
234
+ // Map discovered items (WITHOUT modifying original)
235
+ if (ctx.projectName)
236
+ discovered.projectName = ctx.projectName;
237
+ if (ctx.mainLanguage)
238
+ discovered.mainLanguage = ctx.mainLanguage;
239
+ if (ctx.framework)
240
+ discovered.framework = ctx.framework;
241
+ if (ctx.database)
242
+ discovered.database = ctx.database;
243
+ if (ctx.backend)
244
+ discovered.backend = ctx.backend;
245
+ if (ctx.hosting)
246
+ discovered.hosting = ctx.hosting;
247
+ if (ctx.buildTool)
248
+ discovered.buildTool = ctx.buildTool;
249
+ }
250
+ return discovered;
251
+ }
252
+ removeDefaults(data, changes) {
253
+ const defaults = ['None', 'Unknown', 'Not specified', 'N/A'];
254
+ const removeFromObject = (obj, path) => {
255
+ for (const key in obj) {
256
+ const value = obj[key];
257
+ const fullPath = path ? `${path}.${key}` : key;
258
+ if (defaults.includes(value)) {
259
+ delete obj[key];
260
+ changes.push(`Removed default value at ${fullPath}`);
261
+ }
262
+ else if (typeof value === 'object' && value !== null) {
263
+ removeFromObject(value, fullPath);
264
+ }
265
+ }
266
+ };
267
+ removeFromObject(data, '');
268
+ }
269
+ // ============================================================================
270
+ // PASS 4: Generator
271
+ // ============================================================================
272
+ generate(ast) {
273
+ const start = Date.now();
274
+ // Build IR first
275
+ const ir = this.buildIR(ast);
276
+ this.ir = {
277
+ version: FafCompiler.VERSION,
278
+ slots: ir,
279
+ metadata: { compiled: new Date().toISOString() }
280
+ };
281
+ // Calculate from IR
282
+ const slots = this.calculateSlots(ir);
283
+ const score = this.calculateScore(slots);
284
+ const result = {
285
+ score: Math.round(score),
286
+ filled: slots.filled,
287
+ total: slots.total,
288
+ breakdown: slots.breakdown
289
+ };
290
+ this.recordPass('generate', start, ast, result, [
291
+ `Generated score: ${result.score}% (${result.filled}/${result.total} slots)`
292
+ ]);
293
+ return result;
294
+ }
295
+ buildIR(ast) {
296
+ const slots = [];
297
+ // Project slots (3)
298
+ this.addSlot(slots, 'project.name', ast.project?.name, 'string', 'original', 1);
299
+ this.addSlot(slots, 'project.goal', ast.project?.goal, 'string', 'original', 1);
300
+ this.addSlot(slots, 'project.main_language', ast.project?.main_language, 'string', 'original', 1);
301
+ // Stack slots (12)
302
+ this.addSlot(slots, 'stack.frontend', ast.stack?.frontend, 'string', 'original', 1);
303
+ this.addSlot(slots, 'stack.css_framework', ast.stack?.css_framework, 'string', 'original', 1);
304
+ this.addSlot(slots, 'stack.ui_library', ast.stack?.ui_library, 'string', 'original', 1);
305
+ this.addSlot(slots, 'stack.state_management', ast.stack?.state_management, 'string', 'original', 1);
306
+ this.addSlot(slots, 'stack.backend', ast.stack?.backend, 'string', 'original', 1);
307
+ this.addSlot(slots, 'stack.api_type', ast.stack?.api_type, 'string', 'original', 1);
308
+ this.addSlot(slots, 'stack.runtime', ast.stack?.runtime, 'string', 'original', 1);
309
+ this.addSlot(slots, 'stack.database', ast.stack?.database, 'string', 'original', 1);
310
+ this.addSlot(slots, 'stack.connection', ast.stack?.connection, 'string', 'original', 1);
311
+ this.addSlot(slots, 'stack.hosting', ast.stack?.hosting, 'string', 'original', 1);
312
+ this.addSlot(slots, 'stack.build', ast.stack?.build, 'string', 'original', 1);
313
+ this.addSlot(slots, 'stack.cicd', ast.stack?.cicd, 'string', 'original', 1);
314
+ // Human context slots (6)
315
+ this.addSlot(slots, 'human.who', ast.human_context?.who, 'string', 'original', 1);
316
+ this.addSlot(slots, 'human.what', ast.human_context?.what, 'string', 'original', 1);
317
+ this.addSlot(slots, 'human.why', ast.human_context?.why, 'string', 'original', 1);
318
+ this.addSlot(slots, 'human.where', ast.human_context?.where, 'string', 'original', 1);
319
+ this.addSlot(slots, 'human.when', ast.human_context?.when, 'string', 'original', 1);
320
+ this.addSlot(slots, 'human.how', ast.human_context?.how, 'string', 'original', 1);
321
+ // Discovered slots (if any)
322
+ if (ast._discovered) {
323
+ const discovered = ast._discovered;
324
+ const mapping = {
325
+ 'projectName': 'project.name',
326
+ 'mainLanguage': 'project.main_language',
327
+ 'framework': 'stack.frontend',
328
+ 'database': 'stack.database',
329
+ 'backend': 'stack.backend',
330
+ 'hosting': 'stack.hosting',
331
+ 'buildTool': 'stack.build'
332
+ };
333
+ for (const [key, path] of Object.entries(mapping)) {
334
+ if (discovered[key] && !this.hasValue(ast, path)) {
335
+ this.addSlot(slots, `discovery.${path}`, discovered[key], 'string', 'discovered', 1);
336
+ }
337
+ }
338
+ }
339
+ return slots;
340
+ }
341
+ addSlot(slots, path, value, type, source, weight) {
342
+ const filled = this.isSlotFilled(value);
343
+ slots.push({
344
+ id: `slot_${slots.length + 1}`,
345
+ path,
346
+ value,
347
+ type,
348
+ source,
349
+ weight,
350
+ filled
351
+ });
352
+ }
353
+ isSlotFilled(value) {
354
+ // Handle null, undefined, false explicitly
355
+ if (value === null || value === undefined || value === false)
356
+ return false;
357
+ if (typeof value === 'string') {
358
+ // Also treat string representations of null/undefined as empty
359
+ const empty = ['', 'None', 'Unknown', 'Not specified', 'N/A', 'null', 'undefined', '~'];
360
+ return !empty.includes(value.trim());
361
+ }
362
+ if (typeof value === 'number') {
363
+ // Numbers are valid unless they're NaN or Infinity
364
+ return !isNaN(value) && isFinite(value);
365
+ }
366
+ if (typeof value === 'object') {
367
+ // Arrays and objects need content
368
+ if (Array.isArray(value))
369
+ return value.length > 0;
370
+ return Object.keys(value).length > 0;
371
+ }
372
+ return true;
373
+ }
374
+ hasValue(ast, path) {
375
+ const parts = path.split('.');
376
+ let current = ast;
377
+ for (const part of parts) {
378
+ if (!current || !current[part])
379
+ return false;
380
+ current = current[part];
381
+ }
382
+ return this.isSlotFilled(current);
383
+ }
384
+ calculateSlots(ir) {
385
+ const sections = {
386
+ project: { filled: 0, total: 0, slots: [] },
387
+ stack: { filled: 0, total: 0, slots: [] },
388
+ human: { filled: 0, total: 0, slots: [] },
389
+ discovery: { filled: 0, total: 0, slots: [] }
390
+ };
391
+ for (const slot of ir) {
392
+ const [section] = slot.path.split('.');
393
+ const sectionKey = section === 'human' ? 'human' :
394
+ section === 'discovery' ? 'discovery' :
395
+ section === 'project' ? 'project' : 'stack';
396
+ const sec = sections[sectionKey];
397
+ sec.total++;
398
+ if (slot.filled)
399
+ sec.filled++;
400
+ sec.slots.push({
401
+ id: slot.id,
402
+ value: slot.value,
403
+ filled: slot.filled,
404
+ source: slot.source,
405
+ points: slot.filled ? slot.weight : 0
406
+ });
407
+ }
408
+ // Calculate percentages
409
+ const breakdown = {
410
+ project: {
411
+ ...sections.project,
412
+ percentage: sections.project.total > 0
413
+ ? Math.round((sections.project.filled / sections.project.total) * 100)
414
+ : 0
415
+ },
416
+ stack: {
417
+ ...sections.stack,
418
+ percentage: sections.stack.total > 0
419
+ ? Math.round((sections.stack.filled / sections.stack.total) * 100)
420
+ : 0
421
+ },
422
+ human: {
423
+ ...sections.human,
424
+ percentage: sections.human.total > 0
425
+ ? Math.round((sections.human.filled / sections.human.total) * 100)
426
+ : 0
427
+ },
428
+ discovery: {
429
+ ...sections.discovery,
430
+ percentage: sections.discovery.total > 0
431
+ ? Math.round((sections.discovery.filled / sections.discovery.total) * 100)
432
+ : 0
433
+ }
434
+ };
435
+ const filled = Object.values(sections).reduce((sum, sec) => sum + sec.filled, 0);
436
+ const total = Object.values(sections).reduce((sum, sec) => sum + sec.total, 0);
437
+ return { filled, total, breakdown };
438
+ }
439
+ calculateScore(slots) {
440
+ if (slots.total === 0)
441
+ return 0;
442
+ return (slots.filled / slots.total) * 100;
443
+ }
444
+ // ============================================================================
445
+ // Utilities
446
+ // ============================================================================
447
+ calculateChecksum(result) {
448
+ const data = JSON.stringify({
449
+ score: result.score,
450
+ filled: result.filled,
451
+ total: result.total,
452
+ version: FafCompiler.VERSION
453
+ });
454
+ return crypto.createHash('md5').update(data).digest('hex').slice(0, 8);
455
+ }
456
+ recordPass(name, startTime, input, output, changes) {
457
+ this.trace.passes.push({
458
+ name,
459
+ duration: Date.now() - startTime,
460
+ input: this.sanitize(input),
461
+ output: this.sanitize(output),
462
+ changes
463
+ });
464
+ }
465
+ sanitize(data) {
466
+ // Limit size for trace
467
+ const str = JSON.stringify(data);
468
+ if (str.length > 1000) {
469
+ return { _truncated: true, size: str.length };
470
+ }
471
+ return data;
472
+ }
473
+ addDiagnostic(severity, message, location, suggestion) {
474
+ this.diagnostics.push({ severity, message, location, suggestion });
475
+ }
476
+ // ============================================================================
477
+ // Public API
478
+ // ============================================================================
479
+ /**
480
+ * Compile with trace output
481
+ */
482
+ async compileWithTrace(fafPath) {
483
+ const result = await this.compile(fafPath);
484
+ this.printTrace(result);
485
+ return result;
486
+ }
487
+ /**
488
+ * Verify a checksum
489
+ */
490
+ async verify(fafPath, checksum) {
491
+ const result = await this.compile(fafPath);
492
+ return result.checksum === checksum;
493
+ }
494
+ /**
495
+ * Get intermediate representation
496
+ */
497
+ async getIR(fafPath) {
498
+ const result = await this.compile(fafPath);
499
+ return result.ir;
500
+ }
501
+ /**
502
+ * Print diagnostic report
503
+ */
504
+ printDiagnostics() {
505
+ if (this.diagnostics.length === 0) {
506
+ console.log('✓ No issues found');
507
+ return;
508
+ }
509
+ const byType = {
510
+ error: this.diagnostics.filter(d => d.severity === 'error'),
511
+ warning: this.diagnostics.filter(d => d.severity === 'warning'),
512
+ info: this.diagnostics.filter(d => d.severity === 'info')
513
+ };
514
+ if (byType.error.length > 0) {
515
+ console.log(`\n❌ ${byType.error.length} Errors:`);
516
+ byType.error.forEach(d => {
517
+ console.log(` ${d.message}`);
518
+ if (d.suggestion)
519
+ console.log(` → ${d.suggestion}`);
520
+ });
521
+ }
522
+ if (byType.warning.length > 0) {
523
+ console.log(`\n⚠️ ${byType.warning.length} Warnings:`);
524
+ byType.warning.forEach(d => {
525
+ console.log(` ${d.message}`);
526
+ if (d.suggestion)
527
+ console.log(` → ${d.suggestion}`);
528
+ });
529
+ }
530
+ if (byType.info.length > 0) {
531
+ console.log(`\nℹ️ ${byType.info.length} Info:`);
532
+ byType.info.forEach(d => {
533
+ console.log(` ${d.message}`);
534
+ });
535
+ }
536
+ }
537
+ /**
538
+ * Print compilation trace
539
+ */
540
+ printTrace(result) {
541
+ console.log('\n📊 FAF Compilation Trace');
542
+ console.log('═'.repeat(60));
543
+ console.log(`Version: ${result.trace.version}`);
544
+ console.log(`Input Hash: ${result.trace.inputHash}`);
545
+ console.log(`Checksum: ${result.checksum}`);
546
+ console.log();
547
+ console.log('Compilation Passes:');
548
+ result.trace.passes.forEach((pass, i) => {
549
+ console.log(` ${i + 1}. ${pass.name.toUpperCase()} (${pass.duration}ms)`);
550
+ pass.changes.forEach(change => {
551
+ console.log(` → ${change}`);
552
+ });
553
+ });
554
+ console.log();
555
+ console.log('Result:');
556
+ console.log(` Score: ${result.score}%`);
557
+ console.log(` Filled: ${result.filled}/${result.total} slots`);
558
+ console.log();
559
+ console.log('Breakdown:');
560
+ console.log(` Project: ${result.breakdown.project.filled}/${result.breakdown.project.total} (${result.breakdown.project.percentage}%)`);
561
+ console.log(` Stack: ${result.breakdown.stack.filled}/${result.breakdown.stack.total} (${result.breakdown.stack.percentage}%)`);
562
+ console.log(` Human: ${result.breakdown.human.filled}/${result.breakdown.human.total} (${result.breakdown.human.percentage}%)`);
563
+ if (result.breakdown.discovery.total > 0) {
564
+ console.log(` Discovery: ${result.breakdown.discovery.filled}/${result.breakdown.discovery.total} (${result.breakdown.discovery.percentage}%)`);
565
+ }
566
+ if (result.diagnostics.length > 0) {
567
+ console.log();
568
+ this.printDiagnostics();
569
+ }
570
+ console.log('═'.repeat(60));
571
+ }
572
+ }
573
+ exports.FafCompiler = FafCompiler;
574
+ // ============================================================================
575
+ // Export convenience functions
576
+ // ============================================================================
577
+ /**
578
+ * Compile a .faf file
579
+ */
580
+ async function compile(fafPath) {
581
+ const compiler = new FafCompiler();
582
+ return compiler.compile(fafPath);
583
+ }
584
+ /**
585
+ * Compile with trace output
586
+ */
587
+ async function compileWithTrace(fafPath) {
588
+ const compiler = new FafCompiler();
589
+ return compiler.compileWithTrace(fafPath);
590
+ }
591
+ /**
592
+ * Verify a checksum
593
+ */
594
+ async function verify(fafPath, checksum) {
595
+ const compiler = new FafCompiler();
596
+ return compiler.verify(fafPath, checksum);
597
+ }
598
+ //# sourceMappingURL=faf-compiler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faf-compiler.js","sourceRoot":"","sources":["../../src/compiler/faf-compiler.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,7 @@ export declare class ExperienceManager {
39
39
  * Get platform info for debugging
40
40
  */
41
41
  getPlatformInfo(): {
42
- detected: "unknown" | "claude" | "gemini" | "human" | "codex";
42
+ detected: "unknown" | "human" | "claude" | "gemini" | "codex";
43
43
  env: {
44
44
  CODEX_CLI: string | undefined;
45
45
  CODEX_HOME: string | undefined;
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Error handling wrapper for consistent error management
3
+ * Provides clean error messages and telemetry
4
+ */
5
+ export interface ErrorContext {
6
+ command?: string;
7
+ file?: string;
8
+ operation?: string;
9
+ details?: any;
10
+ }
11
+ /**
12
+ * Standardized error handler
13
+ */
14
+ export declare function handleError(err: any, context?: ErrorContext): void;
15
+ /**
16
+ * Wrapper for async functions with error handling
17
+ */
18
+ export declare function withErrorHandling<T extends (...args: any[]) => Promise<any>>(fn: T, context?: ErrorContext): T;
19
+ /**
20
+ * Wrapper for sync functions with error handling
21
+ */
22
+ export declare function withSyncErrorHandling<T extends (...args: any[]) => any>(fn: T, context?: ErrorContext): T;
23
+ /**
24
+ * Create a user-friendly error for common issues
25
+ */
26
+ export declare function createUserError(message: string, suggestion?: string): Error;
27
+ //# sourceMappingURL=error-handler.d.ts.map