faf-cli 2.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 (283) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +227 -0
  3. package/dist/cli.d.ts +8 -0
  4. package/dist/cli.d.ts.map +1 -0
  5. package/dist/cli.js +1249 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/commands/ai-analyze.d.ts +18 -0
  8. package/dist/commands/ai-analyze.d.ts.map +1 -0
  9. package/dist/commands/ai-analyze.js +226 -0
  10. package/dist/commands/ai-analyze.js.map +1 -0
  11. package/dist/commands/ai-enhance.d.ts +17 -0
  12. package/dist/commands/ai-enhance.d.ts.map +1 -0
  13. package/dist/commands/ai-enhance.js +278 -0
  14. package/dist/commands/ai-enhance.js.map +1 -0
  15. package/dist/commands/audit.d.ts +11 -0
  16. package/dist/commands/audit.d.ts.map +1 -0
  17. package/dist/commands/audit.js +180 -0
  18. package/dist/commands/audit.js.map +1 -0
  19. package/dist/commands/auto.d.ts +27 -0
  20. package/dist/commands/auto.d.ts.map +1 -0
  21. package/dist/commands/auto.js +106 -0
  22. package/dist/commands/auto.js.map +1 -0
  23. package/dist/commands/bi-sync.d.ts +43 -0
  24. package/dist/commands/bi-sync.d.ts.map +1 -0
  25. package/dist/commands/bi-sync.js +224 -0
  26. package/dist/commands/bi-sync.js.map +1 -0
  27. package/dist/commands/chat.d.ts +6 -0
  28. package/dist/commands/chat.d.ts.map +1 -0
  29. package/dist/commands/chat.js +227 -0
  30. package/dist/commands/chat.js.map +1 -0
  31. package/dist/commands/check.d.ts +15 -0
  32. package/dist/commands/check.d.ts.map +1 -0
  33. package/dist/commands/check.js +58 -0
  34. package/dist/commands/check.js.map +1 -0
  35. package/dist/commands/clear.d.ts +15 -0
  36. package/dist/commands/clear.d.ts.map +1 -0
  37. package/dist/commands/clear.js +167 -0
  38. package/dist/commands/clear.js.map +1 -0
  39. package/dist/commands/commit.d.ts +8 -0
  40. package/dist/commands/commit.d.ts.map +1 -0
  41. package/dist/commands/commit.js +164 -0
  42. package/dist/commands/commit.js.map +1 -0
  43. package/dist/commands/convert.d.ts +19 -0
  44. package/dist/commands/convert.d.ts.map +1 -0
  45. package/dist/commands/convert.js +102 -0
  46. package/dist/commands/convert.js.map +1 -0
  47. package/dist/commands/credit.d.ts +13 -0
  48. package/dist/commands/credit.d.ts.map +1 -0
  49. package/dist/commands/credit.js +149 -0
  50. package/dist/commands/credit.js.map +1 -0
  51. package/dist/commands/edit-helper.d.ts +6 -0
  52. package/dist/commands/edit-helper.d.ts.map +1 -0
  53. package/dist/commands/edit-helper.js +55 -0
  54. package/dist/commands/edit-helper.js.map +1 -0
  55. package/dist/commands/edit.d.ts +14 -0
  56. package/dist/commands/edit.d.ts.map +1 -0
  57. package/dist/commands/edit.js +196 -0
  58. package/dist/commands/edit.js.map +1 -0
  59. package/dist/commands/faf-auth.d.ts +10 -0
  60. package/dist/commands/faf-auth.d.ts.map +1 -0
  61. package/dist/commands/faf-auth.js +162 -0
  62. package/dist/commands/faf-auth.js.map +1 -0
  63. package/dist/commands/faf-dna.d.ts +9 -0
  64. package/dist/commands/faf-dna.d.ts.map +1 -0
  65. package/dist/commands/faf-dna.js +141 -0
  66. package/dist/commands/faf-dna.js.map +1 -0
  67. package/dist/commands/faf-log.d.ts +9 -0
  68. package/dist/commands/faf-log.d.ts.map +1 -0
  69. package/dist/commands/faf-log.js +135 -0
  70. package/dist/commands/faf-log.js.map +1 -0
  71. package/dist/commands/faf-recover.d.ts +3 -0
  72. package/dist/commands/faf-recover.d.ts.map +1 -0
  73. package/dist/commands/faf-recover.js +299 -0
  74. package/dist/commands/faf-recover.js.map +1 -0
  75. package/dist/commands/faf-update.d.ts +9 -0
  76. package/dist/commands/faf-update.d.ts.map +1 -0
  77. package/dist/commands/faf-update.js +68 -0
  78. package/dist/commands/faf-update.js.map +1 -0
  79. package/dist/commands/faq.d.ts +12 -0
  80. package/dist/commands/faq.d.ts.map +1 -0
  81. package/dist/commands/faq.js +84 -0
  82. package/dist/commands/faq.js.map +1 -0
  83. package/dist/commands/flow.d.ts +11 -0
  84. package/dist/commands/flow.d.ts.map +1 -0
  85. package/dist/commands/flow.js +117 -0
  86. package/dist/commands/flow.js.map +1 -0
  87. package/dist/commands/formats.d.ts +12 -0
  88. package/dist/commands/formats.d.ts.map +1 -0
  89. package/dist/commands/formats.js +109 -0
  90. package/dist/commands/formats.js.map +1 -0
  91. package/dist/commands/index.d.ts +14 -0
  92. package/dist/commands/index.d.ts.map +1 -0
  93. package/dist/commands/index.js +443 -0
  94. package/dist/commands/index.js.map +1 -0
  95. package/dist/commands/init.d.ts +14 -0
  96. package/dist/commands/init.d.ts.map +1 -0
  97. package/dist/commands/init.js +202 -0
  98. package/dist/commands/init.js.map +1 -0
  99. package/dist/commands/lint.d.ts +11 -0
  100. package/dist/commands/lint.d.ts.map +1 -0
  101. package/dist/commands/lint.js +269 -0
  102. package/dist/commands/lint.js.map +1 -0
  103. package/dist/commands/mirror.d.ts +7 -0
  104. package/dist/commands/mirror.d.ts.map +1 -0
  105. package/dist/commands/mirror.js +130 -0
  106. package/dist/commands/mirror.js.map +1 -0
  107. package/dist/commands/score.d.ts +11 -0
  108. package/dist/commands/score.d.ts.map +1 -0
  109. package/dist/commands/score.js +192 -0
  110. package/dist/commands/score.js.map +1 -0
  111. package/dist/commands/search.d.ts +16 -0
  112. package/dist/commands/search.d.ts.map +1 -0
  113. package/dist/commands/search.js +174 -0
  114. package/dist/commands/search.js.map +1 -0
  115. package/dist/commands/share.d.ts +17 -0
  116. package/dist/commands/share.d.ts.map +1 -0
  117. package/dist/commands/share.js +260 -0
  118. package/dist/commands/share.js.map +1 -0
  119. package/dist/commands/show.d.ts +10 -0
  120. package/dist/commands/show.d.ts.map +1 -0
  121. package/dist/commands/show.js +167 -0
  122. package/dist/commands/show.js.map +1 -0
  123. package/dist/commands/stacks.d.ts +51 -0
  124. package/dist/commands/stacks.d.ts.map +1 -0
  125. package/dist/commands/stacks.js +180 -0
  126. package/dist/commands/stacks.js.map +1 -0
  127. package/dist/commands/status.d.ts +13 -0
  128. package/dist/commands/status.d.ts.map +1 -0
  129. package/dist/commands/status.js +158 -0
  130. package/dist/commands/status.js.map +1 -0
  131. package/dist/commands/sync.d.ts +11 -0
  132. package/dist/commands/sync.d.ts.map +1 -0
  133. package/dist/commands/sync.js +300 -0
  134. package/dist/commands/sync.js.map +1 -0
  135. package/dist/commands/todo.d.ts +14 -0
  136. package/dist/commands/todo.d.ts.map +1 -0
  137. package/dist/commands/todo.js +279 -0
  138. package/dist/commands/todo.js.map +1 -0
  139. package/dist/commands/trust.d.ts +33 -0
  140. package/dist/commands/trust.d.ts.map +1 -0
  141. package/dist/commands/trust.js +316 -0
  142. package/dist/commands/trust.js.map +1 -0
  143. package/dist/commands/validate.d.ts +11 -0
  144. package/dist/commands/validate.d.ts.map +1 -0
  145. package/dist/commands/validate.js +100 -0
  146. package/dist/commands/validate.js.map +1 -0
  147. package/dist/commands/verify.d.ts +36 -0
  148. package/dist/commands/verify.d.ts.map +1 -0
  149. package/dist/commands/verify.js +194 -0
  150. package/dist/commands/verify.js.map +1 -0
  151. package/dist/commands/version.d.ts +5 -0
  152. package/dist/commands/version.d.ts.map +1 -0
  153. package/dist/commands/version.js +33 -0
  154. package/dist/commands/version.js.map +1 -0
  155. package/dist/commands/vibe.d.ts +7 -0
  156. package/dist/commands/vibe.d.ts.map +1 -0
  157. package/dist/commands/vibe.js +78 -0
  158. package/dist/commands/vibe.js.map +1 -0
  159. package/dist/converters/faf-converters.d.ts +43 -0
  160. package/dist/converters/faf-converters.d.ts.map +1 -0
  161. package/dist/converters/faf-converters.js +186 -0
  162. package/dist/converters/faf-converters.js.map +1 -0
  163. package/dist/engine-bridge.d.ts +35 -0
  164. package/dist/engine-bridge.d.ts.map +1 -0
  165. package/dist/engine-bridge.js +76 -0
  166. package/dist/engine-bridge.js.map +1 -0
  167. package/dist/engines/claude-todo-engine.d.ts +115 -0
  168. package/dist/engines/claude-todo-engine.d.ts.map +1 -0
  169. package/dist/engines/claude-todo-engine.js +346 -0
  170. package/dist/engines/claude-todo-engine.js.map +1 -0
  171. package/dist/engines/drop-coach.d.ts +64 -0
  172. package/dist/engines/drop-coach.d.ts.map +1 -0
  173. package/dist/engines/drop-coach.js +222 -0
  174. package/dist/engines/drop-coach.js.map +1 -0
  175. package/dist/engines/fab-formats-processor.d.ts +167 -0
  176. package/dist/engines/fab-formats-processor.d.ts.map +1 -0
  177. package/dist/engines/fab-formats-processor.js +1274 -0
  178. package/dist/engines/fab-formats-processor.js.map +1 -0
  179. package/dist/engines/faf-dna.d.ts +160 -0
  180. package/dist/engines/faf-dna.d.ts.map +1 -0
  181. package/dist/engines/faf-dna.js +522 -0
  182. package/dist/engines/faf-dna.js.map +1 -0
  183. package/dist/engines/relentless-context-extractor.d.ts +101 -0
  184. package/dist/engines/relentless-context-extractor.d.ts.map +1 -0
  185. package/dist/engines/relentless-context-extractor.js +625 -0
  186. package/dist/engines/relentless-context-extractor.js.map +1 -0
  187. package/dist/fix-once/colors.d.ts +83 -0
  188. package/dist/fix-once/colors.d.ts.map +1 -0
  189. package/dist/fix-once/colors.js +145 -0
  190. package/dist/fix-once/colors.js.map +1 -0
  191. package/dist/fix-once/types.d.ts +258 -0
  192. package/dist/fix-once/types.d.ts.map +1 -0
  193. package/dist/fix-once/types.js +26 -0
  194. package/dist/fix-once/types.js.map +1 -0
  195. package/dist/framework-detector.d.ts +286 -0
  196. package/dist/framework-detector.d.ts.map +1 -0
  197. package/dist/framework-detector.js +782 -0
  198. package/dist/framework-detector.js.map +1 -0
  199. package/dist/generators/faf-generator-championship.d.ts +11 -0
  200. package/dist/generators/faf-generator-championship.d.ts.map +1 -0
  201. package/dist/generators/faf-generator-championship.js +371 -0
  202. package/dist/generators/faf-generator-championship.js.map +1 -0
  203. package/dist/index.d.ts +18 -0
  204. package/dist/index.d.ts.map +1 -0
  205. package/dist/index.js +34 -0
  206. package/dist/index.js.map +1 -0
  207. package/dist/output/experience-manager.d.ts +58 -0
  208. package/dist/output/experience-manager.d.ts.map +1 -0
  209. package/dist/output/experience-manager.js +212 -0
  210. package/dist/output/experience-manager.js.map +1 -0
  211. package/dist/schema/faf-schema.d.ts +92 -0
  212. package/dist/schema/faf-schema.d.ts.map +1 -0
  213. package/dist/schema/faf-schema.js +173 -0
  214. package/dist/schema/faf-schema.js.map +1 -0
  215. package/dist/scoring/championship-scorer.d.ts +114 -0
  216. package/dist/scoring/championship-scorer.d.ts.map +1 -0
  217. package/dist/scoring/championship-scorer.js +380 -0
  218. package/dist/scoring/championship-scorer.js.map +1 -0
  219. package/dist/scoring/score-calculator.d.ts +29 -0
  220. package/dist/scoring/score-calculator.d.ts.map +1 -0
  221. package/dist/scoring/score-calculator.js +520 -0
  222. package/dist/scoring/score-calculator.js.map +1 -0
  223. package/dist/telemetry/analytics.d.ts +74 -0
  224. package/dist/telemetry/analytics.d.ts.map +1 -0
  225. package/dist/telemetry/analytics.js +370 -0
  226. package/dist/telemetry/analytics.js.map +1 -0
  227. package/dist/utils/balance-visualizer.d.ts +38 -0
  228. package/dist/utils/balance-visualizer.d.ts.map +1 -0
  229. package/dist/utils/balance-visualizer.js +196 -0
  230. package/dist/utils/balance-visualizer.js.map +1 -0
  231. package/dist/utils/championship-style.d.ts +110 -0
  232. package/dist/utils/championship-style.d.ts.map +1 -0
  233. package/dist/utils/championship-style.js +213 -0
  234. package/dist/utils/championship-style.js.map +1 -0
  235. package/dist/utils/color-utils.d.ts +17 -0
  236. package/dist/utils/color-utils.d.ts.map +1 -0
  237. package/dist/utils/color-utils.js +96 -0
  238. package/dist/utils/color-utils.js.map +1 -0
  239. package/dist/utils/fab-formats-engine.d.ts +76 -0
  240. package/dist/utils/fab-formats-engine.d.ts.map +1 -0
  241. package/dist/utils/fab-formats-engine.js +424 -0
  242. package/dist/utils/fab-formats-engine.js.map +1 -0
  243. package/dist/utils/fafignore-parser.d.ts +21 -0
  244. package/dist/utils/fafignore-parser.d.ts.map +1 -0
  245. package/dist/utils/fafignore-parser.js +178 -0
  246. package/dist/utils/fafignore-parser.js.map +1 -0
  247. package/dist/utils/file-utils.d.ts +65 -0
  248. package/dist/utils/file-utils.d.ts.map +1 -0
  249. package/dist/utils/file-utils.js +598 -0
  250. package/dist/utils/file-utils.js.map +1 -0
  251. package/dist/utils/platform-detector.d.ts +31 -0
  252. package/dist/utils/platform-detector.d.ts.map +1 -0
  253. package/dist/utils/platform-detector.js +218 -0
  254. package/dist/utils/platform-detector.js.map +1 -0
  255. package/dist/utils/technical-credit.d.ts +36 -0
  256. package/dist/utils/technical-credit.d.ts.map +1 -0
  257. package/dist/utils/technical-credit.js +286 -0
  258. package/dist/utils/technical-credit.js.map +1 -0
  259. package/dist/utils/trust-cache.d.ts +29 -0
  260. package/dist/utils/trust-cache.d.ts.map +1 -0
  261. package/dist/utils/trust-cache.js +123 -0
  262. package/dist/utils/trust-cache.js.map +1 -0
  263. package/dist/utils/turbo-cat-knowledge.d.ts +82 -0
  264. package/dist/utils/turbo-cat-knowledge.d.ts.map +1 -0
  265. package/dist/utils/turbo-cat-knowledge.js +1346 -0
  266. package/dist/utils/turbo-cat-knowledge.js.map +1 -0
  267. package/dist/utils/turbo-cat-pyramid.d.ts +38 -0
  268. package/dist/utils/turbo-cat-pyramid.d.ts.map +1 -0
  269. package/dist/utils/turbo-cat-pyramid.js +287 -0
  270. package/dist/utils/turbo-cat-pyramid.js.map +1 -0
  271. package/dist/utils/turbo-cat.d.ts +92 -0
  272. package/dist/utils/turbo-cat.d.ts.map +1 -0
  273. package/dist/utils/turbo-cat.js +412 -0
  274. package/dist/utils/turbo-cat.js.map +1 -0
  275. package/dist/utils/vibe-sync.d.ts +25 -0
  276. package/dist/utils/vibe-sync.d.ts.map +1 -0
  277. package/dist/utils/vibe-sync.js +169 -0
  278. package/dist/utils/vibe-sync.js.map +1 -0
  279. package/dist/utils/yaml-generator.d.ts +39 -0
  280. package/dist/utils/yaml-generator.d.ts.map +1 -0
  281. package/dist/utils/yaml-generator.js +345 -0
  282. package/dist/utils/yaml-generator.js.map +1 -0
  283. package/package.json +96 -0
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+ /**
3
+ * ✏️ Edit Command - Interactive .faf editor
4
+ * Claude Code consistency: Similar to /edit command
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.editCommand = editCommand;
41
+ const championship_style_1 = require("../utils/championship-style");
42
+ const file_utils_1 = require("../utils/file-utils");
43
+ const faf_schema_1 = require("../schema/faf-schema");
44
+ const fs = __importStar(require("fs/promises"));
45
+ const path = __importStar(require("path"));
46
+ const os = __importStar(require("os"));
47
+ const child_process_1 = require("child_process");
48
+ const YAML = __importStar(require("yaml"));
49
+ /**
50
+ * Interactive .faf file editor with validation
51
+ */
52
+ async function editCommand(options = {}) {
53
+ try {
54
+ const startTime = Date.now();
55
+ console.log(championship_style_1.FAF_COLORS.fafCyan(`${championship_style_1.FAF_ICONS.pencil} Interactive .faf Editor`));
56
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('├─ ')}${championship_style_1.BRAND_MESSAGES.optimization}`);
57
+ const fafPath = await (0, file_utils_1.findFafFile)();
58
+ if (!fafPath) {
59
+ console.log(`${championship_style_1.FAF_COLORS.fafOrange('└─ ')}No .faf file found. Run ${championship_style_1.FAF_COLORS.fafCyan('faf init')} first.`);
60
+ return;
61
+ }
62
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('├─ ')}Found: ${path.relative(process.cwd(), fafPath)}`);
63
+ // Create backup before editing
64
+ const backupPath = `${fafPath}.edit-backup`;
65
+ const originalContent = await fs.readFile(fafPath, 'utf-8');
66
+ await fs.writeFile(backupPath, originalContent);
67
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('├─ ')}Backup created: ${path.basename(backupPath)}`);
68
+ if (options.section) {
69
+ await editSection(fafPath, options.section);
70
+ }
71
+ else {
72
+ await openInEditor(fafPath, options.editor);
73
+ }
74
+ // Validate after editing (unless explicitly disabled)
75
+ if (options.validate !== false) {
76
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('├─ ')}Validating changes...`);
77
+ const newContent = await fs.readFile(fafPath, 'utf-8');
78
+ const hasChanges = newContent !== originalContent;
79
+ if (hasChanges) {
80
+ try {
81
+ const fafData = YAML.parse(newContent);
82
+ const validation = (0, faf_schema_1.validateSchema)(fafData);
83
+ if (validation.valid) {
84
+ console.log(`${championship_style_1.FAF_COLORS.fafGreen('├─ ')}☑️ Validation passed!`);
85
+ // Clean up backup on successful edit
86
+ await fs.unlink(backupPath);
87
+ }
88
+ else {
89
+ console.log(`${championship_style_1.FAF_COLORS.fafOrange('├─ ')}⚠️ Validation warnings found`);
90
+ validation.errors.forEach(error => {
91
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('│ ')}• ${error.message}`);
92
+ });
93
+ }
94
+ }
95
+ catch {
96
+ console.log(`${championship_style_1.FAF_COLORS.fafOrange('├─ ')}❌ YAML parse error - restoring backup`);
97
+ await fs.writeFile(fafPath, originalContent);
98
+ await fs.unlink(backupPath);
99
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('└─ ')}Original content restored`);
100
+ return;
101
+ }
102
+ }
103
+ else {
104
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('├─ ')}No changes made`);
105
+ await fs.unlink(backupPath);
106
+ }
107
+ }
108
+ const duration = Date.now() - startTime;
109
+ console.log();
110
+ console.log(championship_style_1.FAF_COLORS.fafGreen(`${championship_style_1.FAF_ICONS.trophy} Edit session complete in ${duration}ms!`));
111
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan(`${championship_style_1.FAF_ICONS.magic_wand} Try: `)}faf score${championship_style_1.FAF_COLORS.fafCyan(' - Check your updated score')}`);
112
+ }
113
+ catch (error) {
114
+ console.error(championship_style_1.FAF_COLORS.fafOrange(`${championship_style_1.FAF_ICONS.shield} Edit failed: ${error instanceof Error ? error.message : String(error)}`));
115
+ process.exit(1);
116
+ }
117
+ }
118
+ /**
119
+ * Open .faf file in user's preferred editor
120
+ */
121
+ async function openInEditor(fafPath, editorPreference) {
122
+ const editor = editorPreference || getPreferredEditor();
123
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('├─ ')}Opening in ${editor}...`);
124
+ return new Promise((resolve, reject) => {
125
+ const editorProcess = (0, child_process_1.spawn)(editor, [fafPath], {
126
+ stdio: 'inherit'
127
+ });
128
+ editorProcess.on('close', (code) => {
129
+ if (code === 0) {
130
+ resolve();
131
+ }
132
+ else {
133
+ reject(new Error(`Editor exited with code ${code}`));
134
+ }
135
+ });
136
+ editorProcess.on('error', (error) => {
137
+ reject(new Error(`Failed to open editor: ${error.message}`));
138
+ });
139
+ });
140
+ }
141
+ /**
142
+ * Edit a specific section interactively
143
+ */
144
+ async function editSection(fafPath, sectionName) {
145
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('├─ ')}Editing section: ${sectionName}`);
146
+ const content = await fs.readFile(fafPath, 'utf-8');
147
+ const fafData = YAML.parse(content) || {};
148
+ const availableSections = ['project', 'stack', 'scores', 'ai_instructions', 'preferences', 'state', 'human_context'];
149
+ if (!availableSections.includes(sectionName)) {
150
+ console.log(`${championship_style_1.FAF_COLORS.fafOrange('├─ ')}Unknown section: ${sectionName}`);
151
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('└─ ')}Available: ${availableSections.join(', ')}`);
152
+ return;
153
+ }
154
+ // Create temporary file with just the section
155
+ const tempDir = os.tmpdir();
156
+ const tempFile = path.join(tempDir, `faf-section-${sectionName}-${Date.now()}.yaml`);
157
+ const sectionData = fafData[sectionName] || {};
158
+ const sectionYaml = YAML.stringify({ [sectionName]: sectionData }, { indent: 2 });
159
+ await fs.writeFile(tempFile, sectionYaml);
160
+ try {
161
+ // Open section in editor
162
+ await openInEditor(tempFile);
163
+ // Read back the edited section
164
+ const editedContent = await fs.readFile(tempFile, 'utf-8');
165
+ const editedData = YAML.parse(editedContent);
166
+ // Merge back into main .faf
167
+ fafData[sectionName] = editedData[sectionName];
168
+ const newFafContent = YAML.stringify(fafData, { indent: 2 });
169
+ await fs.writeFile(fafPath, newFafContent);
170
+ console.log(`${championship_style_1.FAF_COLORS.fafGreen('├─ ')}Section ${sectionName} updated successfully`);
171
+ }
172
+ finally {
173
+ // Clean up temp file
174
+ try {
175
+ await fs.unlink(tempFile);
176
+ }
177
+ catch {
178
+ // Ignore cleanup errors
179
+ }
180
+ }
181
+ }
182
+ /**
183
+ * Detect user's preferred editor
184
+ */
185
+ function getPreferredEditor() {
186
+ // Check environment variables in order of preference
187
+ const editorEnv = process.env.VISUAL || process.env.EDITOR;
188
+ if (editorEnv) {
189
+ return editorEnv;
190
+ }
191
+ // For now, return VS Code as default (most common for .faf files)
192
+ // In a full implementation, we'd check which editors are available
193
+ // Common editors would be: ['code', 'subl', 'atom', 'vim', 'nano', 'emacs']
194
+ return 'code';
195
+ }
196
+ //# sourceMappingURL=edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit.js","sourceRoot":"","sources":["../../src/commands/edit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * FAF AUTH - Birth Certificate Authentication
4
+ *
5
+ * Creates immutable record of project origin
6
+ * Every authenticated .faf can be verified
7
+ * Like a blockchain of context evolution
8
+ */
9
+ export {};
10
+ //# sourceMappingURL=faf-auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faf-auth.d.ts","sourceRoot":"","sources":["../../src/commands/faf-auth.ts"],"names":[],"mappings":";AACA;;;;;;GAMG"}
@@ -0,0 +1,162 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * FAF AUTH - Birth Certificate Authentication
5
+ *
6
+ * Creates immutable record of project origin
7
+ * Every authenticated .faf can be verified
8
+ * Like a blockchain of context evolution
9
+ */
10
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ var desc = Object.getOwnPropertyDescriptor(m, k);
13
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
14
+ desc = { enumerable: true, get: function() { return m[k]; } };
15
+ }
16
+ Object.defineProperty(o, k2, desc);
17
+ }) : (function(o, m, k, k2) {
18
+ if (k2 === undefined) k2 = k;
19
+ o[k2] = m[k];
20
+ }));
21
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
22
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
23
+ }) : function(o, v) {
24
+ o["default"] = v;
25
+ });
26
+ var __importStar = (this && this.__importStar) || (function () {
27
+ var ownKeys = function(o) {
28
+ ownKeys = Object.getOwnPropertyNames || function (o) {
29
+ var ar = [];
30
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
31
+ return ar;
32
+ };
33
+ return ownKeys(o);
34
+ };
35
+ return function (mod) {
36
+ if (mod && mod.__esModule) return mod;
37
+ var result = {};
38
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
39
+ __setModuleDefault(result, mod);
40
+ return result;
41
+ };
42
+ })();
43
+ Object.defineProperty(exports, "__esModule", { value: true });
44
+ const commander_1 = require("commander");
45
+ const path = __importStar(require("path"));
46
+ const faf_dna_1 = require("../engines/faf-dna");
47
+ const colors_1 = require("../fix-once/colors");
48
+ const program = new commander_1.Command();
49
+ program
50
+ .name('faf auth')
51
+ .description('Authenticate your FAF project with a birth certificate')
52
+ .option('--verify <certificate>', 'Verify an existing certificate')
53
+ .option('--show', 'Show current authentication status')
54
+ .action(async (options) => {
55
+ try {
56
+ const projectPath = process.cwd();
57
+ const dnaManager = new faf_dna_1.FafDNAManager(projectPath);
58
+ // Load existing DNA or error
59
+ const dna = await dnaManager.load();
60
+ if (options.verify) {
61
+ // Verify mode
62
+ if (!dna) {
63
+ console.log(colors_1.colors.error('❌ No FAF DNA found to verify'));
64
+ process.exit(1);
65
+ }
66
+ const isValid = dna.birthCertificate.certificate === options.verify;
67
+ if (isValid) {
68
+ console.log(colors_1.colors.success('✅ Certificate VALID'));
69
+ console.log(colors_1.colors.info(`Project: ${path.basename(projectPath)}`));
70
+ console.log(colors_1.colors.info(`Born: ${dna.birthCertificate.born.toISOString().split('T')[0]}`));
71
+ console.log(colors_1.colors.info(`Birth Weight: ${dna.birthCertificate.birthWeight}%`));
72
+ console.log(colors_1.colors.info(`Authenticated: ${dna.birthCertificate.authenticated ? 'Yes' : 'No'}`));
73
+ }
74
+ else {
75
+ console.log(colors_1.colors.error('❌ Certificate INVALID'));
76
+ }
77
+ process.exit(isValid ? 0 : 1);
78
+ }
79
+ if (options.show) {
80
+ // Show status mode
81
+ if (!dna) {
82
+ console.log(colors_1.colors.warning('🔓 No authentication found'));
83
+ console.log(colors_1.colors.secondary('Run "faf init" first, then "faf auth" to authenticate'));
84
+ process.exit(0);
85
+ }
86
+ console.log();
87
+ console.log(colors_1.colors.primary('🎫 FAF BIRTH CERTIFICATE'));
88
+ console.log(colors_1.colors.secondary('═'.repeat(40)));
89
+ console.log();
90
+ console.log(colors_1.colors.info(`Certificate: ${dna.birthCertificate.certificate}`));
91
+ console.log(colors_1.colors.info(`Born: ${dna.birthCertificate.born.toISOString()}`));
92
+ console.log(colors_1.colors.info(`Birth Weight: ${dna.birthCertificate.birthWeight}%`));
93
+ console.log(colors_1.colors.info(`Source: ${dna.birthCertificate.birthWeightSource}`));
94
+ console.log();
95
+ if (dna.birthCertificate.authenticated) {
96
+ console.log(colors_1.colors.success(`✅ AUTHENTICATED`));
97
+ if (dna.birthCertificate.authDate) {
98
+ console.log(colors_1.colors.secondary(` Auth Date: ${dna.birthCertificate.authDate.toISOString()}`));
99
+ }
100
+ }
101
+ else {
102
+ console.log(colors_1.colors.warning(`⚠️ NOT AUTHENTICATED`));
103
+ console.log(colors_1.colors.secondary(` Run "faf auth" to authenticate`));
104
+ }
105
+ console.log();
106
+ console.log(colors_1.colors.secondary('═'.repeat(40)));
107
+ console.log();
108
+ // Show journey
109
+ const journey = dnaManager.getJourney('compact');
110
+ if (journey) {
111
+ console.log(colors_1.colors.info(`Journey: ${journey}`));
112
+ }
113
+ process.exit(0);
114
+ }
115
+ // Authenticate mode
116
+ if (!dna) {
117
+ console.log(colors_1.colors.error('❌ No FAF DNA found to authenticate'));
118
+ console.log(colors_1.colors.secondary('Run "faf init" first to create your project DNA'));
119
+ process.exit(1);
120
+ }
121
+ if (dna.birthCertificate.authenticated) {
122
+ console.log(colors_1.colors.warning('⚠️ Already authenticated'));
123
+ console.log(colors_1.colors.info(`Certificate: ${dna.birthCertificate.certificate}`));
124
+ console.log(colors_1.colors.secondary(`Auth Date: ${dna.birthCertificate.authDate?.toISOString()}`));
125
+ process.exit(0);
126
+ }
127
+ // Perform authentication
128
+ console.log();
129
+ console.log(colors_1.colors.primary('🔏 Authenticating FAF DNA...'));
130
+ console.log();
131
+ const certificate = await dnaManager.authenticate();
132
+ // Display authentication success
133
+ console.log(colors_1.colors.success('✅ AUTHENTICATION COMPLETE'));
134
+ console.log();
135
+ console.log(colors_1.colors.primary('🎫 BIRTH CERTIFICATE ISSUED'));
136
+ console.log(colors_1.colors.secondary('═'.repeat(50)));
137
+ console.log();
138
+ console.log(colors_1.colors.highlight(`Certificate: ${certificate}`));
139
+ console.log();
140
+ console.log(colors_1.colors.info('Project DNA:'));
141
+ console.log(colors_1.colors.secondary(` Born: ${dna.birthCertificate.born.toISOString()}`));
142
+ console.log(colors_1.colors.secondary(` Birth Weight: ${dna.birthCertificate.birthWeight}%`));
143
+ console.log(colors_1.colors.secondary(` Project Hash: ${dna.birthCertificate.projectDNA}`));
144
+ console.log();
145
+ console.log(colors_1.colors.secondary('═'.repeat(50)));
146
+ console.log();
147
+ console.log(colors_1.colors.success('🔒 Your FAF context is now authenticated'));
148
+ console.log(colors_1.colors.secondary('This certificate proves the origin and evolution of your AI context'));
149
+ console.log();
150
+ console.log(colors_1.colors.info('Next steps:'));
151
+ console.log(colors_1.colors.secondary(' • faf auto - Grow your context'));
152
+ console.log(colors_1.colors.secondary(' • faf approve - Mark a version as approved'));
153
+ console.log(colors_1.colors.secondary(' • faf log - View your context evolution'));
154
+ console.log();
155
+ }
156
+ catch (error) {
157
+ console.error(colors_1.colors.error(`❌ Error: ${error.message}`));
158
+ process.exit(1);
159
+ }
160
+ });
161
+ program.parse(process.argv);
162
+ //# sourceMappingURL=faf-auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faf-auth.js","sourceRoot":"","sources":["../../src/commands/faf-auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * FAF DNA - Quick Journey Display
4
+ *
5
+ * Shows: "22% → 85% → 99% ← 92%"
6
+ * The complete story in one line
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=faf-dna.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faf-dna.d.ts","sourceRoot":"","sources":["../../src/commands/faf-dna.ts"],"names":[],"mappings":";AACA;;;;;GAKG"}
@@ -0,0 +1,141 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * FAF DNA - Quick Journey Display
5
+ *
6
+ * Shows: "22% → 85% → 99% ← 92%"
7
+ * The complete story in one line
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ const commander_1 = require("commander");
11
+ const faf_dna_1 = require("../engines/faf-dna");
12
+ const colors_1 = require("../fix-once/colors");
13
+ const program = new commander_1.Command();
14
+ program
15
+ .name('faf dna')
16
+ .description('🧬 Show your FAF DNA journey at a glance')
17
+ .action(async () => {
18
+ try {
19
+ const projectPath = process.cwd();
20
+ const dnaManager = new faf_dna_1.FafDNAManager(projectPath);
21
+ // Load DNA
22
+ const dna = await dnaManager.load();
23
+ if (!dna) {
24
+ console.log(colors_1.colors.error('❌ No FAF DNA found'));
25
+ console.log(colors_1.colors.secondary('Run "faf init" to start your journey'));
26
+ process.exit(1);
27
+ }
28
+ // Get the journey
29
+ const journey = dnaManager.getJourney('compact');
30
+ console.log();
31
+ // BIG DISPLAY - This is the hero moment
32
+ console.log(colors_1.colors.highlight('🧬 YOUR FAF DNA'));
33
+ console.log();
34
+ console.log(colors_1.colors.championship(` ${journey}`));
35
+ console.log();
36
+ // Quick summary
37
+ const birthWeight = dna.birthCertificate.birthWeight;
38
+ const current = dna.current.score;
39
+ const growth = current - birthWeight;
40
+ const daysActive = Math.floor((Date.now() - dna.birthCertificate.born.getTime()) / (1000 * 60 * 60 * 24));
41
+ console.log(colors_1.colors.secondary('═'.repeat(50)));
42
+ console.log();
43
+ // Stats
44
+ console.log(colors_1.colors.info('📊 QUICK STATS'));
45
+ console.log(colors_1.colors.secondary(` Born: ${dna.birthCertificate.born.toISOString().split('T')[0]}`));
46
+ console.log(colors_1.colors.secondary(` Days Active: ${daysActive}`));
47
+ console.log(colors_1.colors.secondary(` Total Growth: +${growth}%`));
48
+ // Authentication status
49
+ if (dna.birthCertificate.authenticated) {
50
+ console.log(colors_1.colors.success(` ✅ Authenticated: ${dna.birthCertificate.certificate}`));
51
+ }
52
+ else {
53
+ console.log(colors_1.colors.warning(` ⚠️ Not authenticated (run 'faf auth')`));
54
+ }
55
+ console.log();
56
+ // Milestones with ☑️ and ░░ visual journey
57
+ console.log(colors_1.colors.info('🧬 YOUR JOURNEY'));
58
+ console.log();
59
+ const milestones = dna.growth.milestones;
60
+ const allPossibleMilestones = [
61
+ { type: 'birth', label: 'Born', threshold: 0 },
62
+ { type: 'first_save', label: 'First Save', threshold: 0 },
63
+ { type: 'doubled', label: 'Doubled', threshold: birthWeight * 2 },
64
+ { type: 'championship', label: 'Championship', threshold: 70 },
65
+ { type: 'elite', label: 'Elite', threshold: 85 },
66
+ { type: 'peak', label: 'Peak', threshold: 95 },
67
+ { type: 'perfect', label: 'Perfect', threshold: 100 }
68
+ ];
69
+ let achievedCount = 0;
70
+ allPossibleMilestones.forEach(possible => {
71
+ const achieved = milestones.find(m => m.type === possible.type);
72
+ if (achieved) {
73
+ const isCurrent = achieved.type === 'current' ||
74
+ (achieved.type === 'elite' && current >= 85 && current < 95) ||
75
+ (achieved.type === 'peak' && current >= 95 && current < 100);
76
+ if (isCurrent) {
77
+ console.log(colors_1.colors.success(` ⭐ ${possible.label} (${achieved.score}%) ← You are here!`));
78
+ }
79
+ else {
80
+ console.log(colors_1.colors.secondary(` ☑️ ${possible.label} (${achieved.score}%)`));
81
+ }
82
+ achievedCount++;
83
+ }
84
+ else if (possible.threshold > 0 && current < possible.threshold) {
85
+ // Show as available future milestone
86
+ console.log(colors_1.colors.dim(` ░░ ${possible.label} (${possible.threshold}%) - Available!`));
87
+ }
88
+ });
89
+ console.log();
90
+ console.log(colors_1.colors.info(` You've unlocked ${achievedCount} of ${allPossibleMilestones.length} milestones!`));
91
+ console.log();
92
+ // Peak vs Current
93
+ const peak = milestones.find(m => m.type === 'peak');
94
+ if (peak && peak.score > current) {
95
+ console.log(colors_1.colors.warning(` ⚠️ ${peak.score - current}% below your peak`));
96
+ console.log(colors_1.colors.secondary(` (Peak: ${peak.score}% on ${peak.date.toISOString().split('T')[0]})`));
97
+ console.log();
98
+ }
99
+ else if (current === 100) {
100
+ console.log(colors_1.colors.success(` 💎 PERFECT SCORE ACHIEVED!`));
101
+ console.log();
102
+ }
103
+ else if (current >= 85) {
104
+ console.log(colors_1.colors.success(` ⭐ Elite performance level`));
105
+ console.log();
106
+ }
107
+ console.log(colors_1.colors.secondary('═'.repeat(50)));
108
+ console.log();
109
+ // Links to more info
110
+ console.log(colors_1.colors.info('📚 LEARN MORE'));
111
+ console.log(colors_1.colors.secondary(' • faf log - Complete history'));
112
+ console.log(colors_1.colors.secondary(' • faf log --milestones - Key moments'));
113
+ console.log(colors_1.colors.secondary(' • faf log --analytics - Growth metrics'));
114
+ console.log(colors_1.colors.secondary(' • faf score - Current details'));
115
+ console.log(colors_1.colors.secondary(' • faf auth - Authenticate DNA'));
116
+ console.log();
117
+ // Motivational message based on journey
118
+ if (growth > 70) {
119
+ console.log(colors_1.colors.success('🚀 Incredible journey! You\'ve transformed your AI context!'));
120
+ }
121
+ else if (growth > 50) {
122
+ console.log(colors_1.colors.success('📈 Great progress! Your context is evolving beautifully.'));
123
+ }
124
+ else if (growth > 30) {
125
+ console.log(colors_1.colors.info('🌱 Good growth! Keep improving with "faf auto".'));
126
+ }
127
+ else if (growth > 0) {
128
+ console.log(colors_1.colors.info('🌱 Your journey has begun. Every step counts!'));
129
+ }
130
+ else {
131
+ console.log(colors_1.colors.info('🐣 Just born! Your growth story starts now.'));
132
+ }
133
+ console.log();
134
+ }
135
+ catch (error) {
136
+ console.error(colors_1.colors.error(`❌ Error: ${error.message}`));
137
+ process.exit(1);
138
+ }
139
+ });
140
+ program.parse(process.argv);
141
+ //# sourceMappingURL=faf-dna.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faf-dna.js","sourceRoot":"","sources":["../../src/commands/faf-dna.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * FAF LOG - Complete Context Evolution History
4
+ *
5
+ * Shows every version, growth milestone, and achievement
6
+ * The complete DNA record of your project's AI context
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=faf-log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faf-log.d.ts","sourceRoot":"","sources":["../../src/commands/faf-log.ts"],"names":[],"mappings":";AACA;;;;;GAKG"}