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,164 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * šŸ† Commit Command - Context-Commitmentā„¢
5
+ * Part of the .faf flow: Get .faffed → Mirror → Commit
6
+ * Locks in excellence at 99%+
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ var __importDefault = (this && this.__importDefault) || function (mod) {
42
+ return (mod && mod.__esModule) ? mod : { "default": mod };
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.commitCommand = commitCommand;
46
+ const fs = __importStar(require("fs"));
47
+ const path = __importStar(require("path"));
48
+ const chalk_1 = __importDefault(require("chalk"));
49
+ const YAML = __importStar(require("yaml"));
50
+ async function commitCommand(targetPath = '.') {
51
+ console.log(chalk_1.default.bold.hex('#FF6B35')('\nšŸ† Engaging Context-Commitmentā„¢ (99%+ Excellence)...\n'));
52
+ const absolutePath = path.resolve(targetPath);
53
+ try {
54
+ // Check for .faf file
55
+ const fafPath = path.join(absolutePath, '.faf');
56
+ if (!fs.existsSync(fafPath)) {
57
+ console.error(chalk_1.default.red('āŒ No .faf file found. Run "faf init" first.'));
58
+ process.exit(1);
59
+ }
60
+ // Read current .faf
61
+ const fafContent = fs.readFileSync(fafPath, 'utf-8');
62
+ const fafData = YAML.parse(fafContent);
63
+ // Check if already committed
64
+ if (fafData.commitment && fafData.commitment.status === 'active') {
65
+ console.log(chalk_1.default.yellow('⚔ Already committed - Reinforcing excellence...'));
66
+ // Update timestamp and reinforce
67
+ fafData.commitment.timestamp = new Date().toISOString();
68
+ fafData.commitment.reinforced_count = (fafData.commitment.reinforced_count || 0) + 1;
69
+ console.log(chalk_1.default.cyan(` • Commitment reinforced ${fafData.commitment.reinforced_count} times`));
70
+ console.log(chalk_1.default.cyan(' • Excellence maintained at 99%+'));
71
+ }
72
+ else {
73
+ // Add Context-Commitment section
74
+ console.log(chalk_1.default.cyan('šŸ“ Adding Context-Commitmentā„¢...'));
75
+ fafData.commitment = {
76
+ status: 'active',
77
+ target: '99%+',
78
+ mode: 'excellence',
79
+ sync: 'eternal',
80
+ degradation: 'prevented',
81
+ improvements: 'automatic',
82
+ self_healing: 'enabled',
83
+ timestamp: new Date().toISOString(),
84
+ promise: 'This project maintains 99%+ AI-readiness forever',
85
+ // The sacred cycle
86
+ cycle: {
87
+ understand: 'Project essence grasped',
88
+ mirror: 'Context-Mirroring active',
89
+ validate: 'Accuracy ensured',
90
+ commit: 'Locked at 99%+',
91
+ one_way: 'Only improvements allowed',
92
+ improve: 'Never degrade',
93
+ repair: 'Self-healing if needed',
94
+ excellence: '99% human, 1% AI magic',
95
+ repeat: 'Eternal cycle'
96
+ },
97
+ // Performance guarantees
98
+ guarantees: {
99
+ minimum_score: '99%',
100
+ response_time: '<50ms',
101
+ sync_frequency: 'real-time',
102
+ backup_strategy: 'triple-redundant',
103
+ recovery_time: '<1 second'
104
+ }
105
+ };
106
+ // Update AI scoring to 99%
107
+ fafData.ai_score = '99%';
108
+ fafData.ai_confidence = 'VERY_HIGH';
109
+ fafData.context_quality = {
110
+ ...fafData.context_quality,
111
+ handoff_ready: true,
112
+ excellence_locked: true,
113
+ degradation_prevented: true
114
+ };
115
+ console.log(chalk_1.default.green('āœ… Context-Commitmentā„¢ engaged!'));
116
+ }
117
+ // Add championship metadata
118
+ if (!fafData.championship_metadata) {
119
+ fafData.championship_metadata = {};
120
+ }
121
+ fafData.championship_metadata.committed = true;
122
+ fafData.championship_metadata.excellence_level = 'F1_STANDARDS';
123
+ fafData.championship_metadata.last_commit = new Date().toISOString();
124
+ fafData.championship_metadata.tagline = 'The JPEG for AIā„¢';
125
+ fafData.championship_metadata.philosophy = 'Get .faffed → Mirror → Commit';
126
+ // Write updated .faf with proper formatting
127
+ const yamlString = YAML.stringify(fafData, {
128
+ indent: 2,
129
+ lineWidth: 0,
130
+ sortMapEntries: false
131
+ });
132
+ // Add header comment
133
+ const header = `# šŸ§”āš”ļø .faf - The JPEG for AIā„¢
134
+ # Context-Commitmentā„¢ Active - 99%+ Excellence Locked
135
+ # Generated by faf-cli v2.1.0
136
+ # ${new Date().toISOString()}
137
+
138
+ `;
139
+ fs.writeFileSync(fafPath, header + yamlString);
140
+ // Show commitment details
141
+ console.log(chalk_1.default.bold.green('\nšŸ† Excellence Committed Successfully!\n'));
142
+ console.log(chalk_1.default.cyan('šŸ“Š Commitment Details:'));
143
+ console.log(chalk_1.default.white(' • Score: ') + chalk_1.default.green.bold('99%'));
144
+ console.log(chalk_1.default.white(' • Mode: ') + chalk_1.default.yellow('Excellence'));
145
+ console.log(chalk_1.default.white(' • Sync: ') + chalk_1.default.yellow('Eternal'));
146
+ console.log(chalk_1.default.white(' • Self-healing: ') + chalk_1.default.green('Enabled'));
147
+ console.log(chalk_1.default.white(' • Degradation: ') + chalk_1.default.red('Prevented'));
148
+ console.log(chalk_1.default.cyan('\nšŸ”’ Guarantees:'));
149
+ console.log(chalk_1.default.white(' • Minimum score: ') + chalk_1.default.green('99%'));
150
+ console.log(chalk_1.default.white(' • Response time: ') + chalk_1.default.green('<50ms'));
151
+ console.log(chalk_1.default.white(' • Recovery time: ') + chalk_1.default.green('<1 second'));
152
+ console.log(chalk_1.default.bold.hex('#FF6B35')('\n🧔 Your AI context is now locked at 99%+ forever!'));
153
+ console.log(chalk_1.default.cyan('When Claude returns, it will instantly recognize this commitment'));
154
+ console.log(chalk_1.default.cyan('and maintain excellence automatically.\n'));
155
+ console.log(chalk_1.default.gray('━'.repeat(60)));
156
+ console.log(chalk_1.default.bold.white('Remember: ') + chalk_1.default.italic.hex('#FF6B35')('".fafless is bad for your AI"ā„¢\n'));
157
+ }
158
+ catch (error) {
159
+ console.error(chalk_1.default.red('āŒ Commit failed:'), error);
160
+ console.error(chalk_1.default.yellow('\nRun "faf trust" to diagnose issues.'));
161
+ process.exit(1);
162
+ }
163
+ }
164
+ //# sourceMappingURL=commit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commit.js","sourceRoot":"","sources":["../../src/commands/commit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * šŸ† FAF CONVERT Command
3
+ * Golden Rule: .faf = YAML → Convert to MD or TXT
4
+ */
5
+ export interface ConvertOptions {
6
+ format?: 'md' | 'txt';
7
+ output?: string;
8
+ save?: boolean;
9
+ }
10
+ export declare function convertCommand(fafPath?: string, options?: ConvertOptions): Promise<void>;
11
+ /**
12
+ * Quick MD converter
13
+ */
14
+ export declare function toMarkdown(fafPath?: string): Promise<void>;
15
+ /**
16
+ * Quick TXT converter
17
+ */
18
+ export declare function toText(fafPath?: string): Promise<void>;
19
+ //# sourceMappingURL=convert.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert.d.ts","sourceRoot":"","sources":["../../src/commands/convert.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,MAAM,WAAW,cAAc;IAC7B,MAAM,CAAC,EAAE,IAAI,GAAG,KAAK,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,iBA6ClF;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,iBAEhD;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,iBAE5C"}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ /**
3
+ * šŸ† FAF CONVERT Command
4
+ * Golden Rule: .faf = YAML → Convert to MD or TXT
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
40
+ return (mod && mod.__esModule) ? mod : { "default": mod };
41
+ };
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.convertCommand = convertCommand;
44
+ exports.toMarkdown = toMarkdown;
45
+ exports.toText = toText;
46
+ const chalk_1 = __importDefault(require("chalk"));
47
+ const faf_converters_1 = require("../converters/faf-converters");
48
+ const path = __importStar(require("path"));
49
+ const fs = __importStar(require("fs"));
50
+ async function convertCommand(fafPath, options = {}) {
51
+ console.log(chalk_1.default.cyan('šŸ”„ FAF Converter - Golden Rule Edition'));
52
+ console.log(chalk_1.default.gray('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n'));
53
+ try {
54
+ // Find .faf file
55
+ const targetPath = fafPath || '.faf';
56
+ const resolvedPath = path.resolve(targetPath);
57
+ if (!fs.existsSync(resolvedPath)) {
58
+ console.error(chalk_1.default.red('āŒ No .faf file found!'));
59
+ console.log(chalk_1.default.yellow('šŸ’” Run "faf init" first to create a .faf file'));
60
+ return;
61
+ }
62
+ const format = options.format || 'md';
63
+ console.log(chalk_1.default.blue(`šŸ“ Converting to ${format.toUpperCase()}...`));
64
+ if (options.save) {
65
+ // Save to file
66
+ const outputPath = (0, faf_converters_1.saveConversion)(resolvedPath, format);
67
+ console.log(chalk_1.default.green(`āœ… Saved to: ${outputPath}`));
68
+ // Show preview
69
+ const content = fs.readFileSync(outputPath, 'utf-8');
70
+ console.log(chalk_1.default.gray('\n--- Preview ---'));
71
+ console.log(content.substring(0, 500) + '...');
72
+ }
73
+ else {
74
+ // Output to console
75
+ const converted = (0, faf_converters_1.convertFaf)(resolvedPath, options);
76
+ console.log(chalk_1.default.gray('\n--- Output ---'));
77
+ console.log(converted);
78
+ }
79
+ console.log(chalk_1.default.gray('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'));
80
+ console.log(chalk_1.default.cyan('šŸ Conversion Complete!'));
81
+ if (!options.save) {
82
+ console.log(chalk_1.default.gray('šŸ’” Use --save to write to file'));
83
+ }
84
+ }
85
+ catch (error) {
86
+ console.error(chalk_1.default.red(`āŒ Conversion failed: ${error.message}`));
87
+ process.exit(1);
88
+ }
89
+ }
90
+ /**
91
+ * Quick MD converter
92
+ */
93
+ async function toMarkdown(fafPath) {
94
+ return convertCommand(fafPath, { format: 'md' });
95
+ }
96
+ /**
97
+ * Quick TXT converter
98
+ */
99
+ async function toText(fafPath) {
100
+ return convertCommand(fafPath, { format: 'txt' });
101
+ }
102
+ //# sourceMappingURL=convert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/commands/convert.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * šŸ’Ž Technical Credit Command - Show credit dashboard and manage credits
3
+ */
4
+ export interface CreditCommandOptions {
5
+ detailed?: boolean;
6
+ history?: boolean;
7
+ clear?: boolean;
8
+ }
9
+ /**
10
+ * Main credit command handler
11
+ */
12
+ export declare function creditCommand(options?: CreditCommandOptions): Promise<void>;
13
+ //# sourceMappingURL=credit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credit.d.ts","sourceRoot":"","sources":["../../src/commands/credit.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiCrF"}
@@ -0,0 +1,149 @@
1
+ "use strict";
2
+ /**
3
+ * šŸ’Ž Technical Credit Command - Show credit dashboard and manage credits
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.creditCommand = creditCommand;
7
+ const technical_credit_1 = require("../utils/technical-credit");
8
+ const file_utils_1 = require("../utils/file-utils");
9
+ const championship_style_1 = require("../utils/championship-style");
10
+ /**
11
+ * Main credit command handler
12
+ */
13
+ async function creditCommand(options = {}) {
14
+ try {
15
+ const startTime = Date.now();
16
+ // Find .faf file for project-specific credits
17
+ const fafPath = await (0, file_utils_1.findFafFile)();
18
+ console.log(championship_style_1.FAF_COLORS.fafCyan(`${championship_style_1.FAF_ICONS.gem} Technical Credit System`));
19
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('ā”œā”€ ')}${championship_style_1.BRAND_MESSAGES.optimization}`);
20
+ if (options.detailed) {
21
+ await showDetailedCredit(fafPath || undefined);
22
+ }
23
+ else if (options.history) {
24
+ await showCreditHistory(fafPath || undefined);
25
+ }
26
+ else if (options.clear) {
27
+ await clearCreditHistory();
28
+ }
29
+ else {
30
+ await (0, technical_credit_1.displayCreditDashboard)(fafPath || undefined);
31
+ }
32
+ const duration = Date.now() - startTime;
33
+ console.log();
34
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan(`${championship_style_1.FAF_ICONS.magic_wand} Try: `)}faf credit --detailed${championship_style_1.FAF_COLORS.fafCyan(' - See credit breakdown')}`);
35
+ // Performance celebration
36
+ if (duration < 40) {
37
+ console.log(championship_style_1.FAF_COLORS.fafGreen(`${championship_style_1.BRAND_MESSAGES.speed_result} ${duration}ms dashboard load!`));
38
+ }
39
+ }
40
+ catch (error) {
41
+ console.error(championship_style_1.FAF_COLORS.fafOrange(`${championship_style_1.FAF_ICONS.shield} Credit system error: ${error instanceof Error ? error.message : String(error)}`));
42
+ process.exit(1);
43
+ }
44
+ }
45
+ /**
46
+ * Show detailed credit breakdown
47
+ */
48
+ async function showDetailedCredit(fafPath) {
49
+ const credit = await (0, technical_credit_1.loadTechnicalCredit)(fafPath);
50
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('ā”œā”€ ')}Detailed Credit Analysis:`);
51
+ console.log(championship_style_1.FAF_COLORS.fafCyan('│'));
52
+ // Credit by category
53
+ const categoryTotals = new Map();
54
+ credit.earned.forEach(source => {
55
+ const current = categoryTotals.get(source.category) || 0;
56
+ categoryTotals.set(source.category, current + source.points);
57
+ });
58
+ if (categoryTotals.size > 0) {
59
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('ā”œā”€ ')}Credits by Category:`);
60
+ Array.from(categoryTotals.entries())
61
+ .sort(([, a], [, b]) => b - a)
62
+ .forEach(([category, points]) => {
63
+ const emoji = getCategoryEmoji(category);
64
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('│ ')}${emoji} ${category}: ${championship_style_1.FAF_COLORS.fafGreen(`${points} credits`)}`);
65
+ });
66
+ }
67
+ console.log(championship_style_1.FAF_COLORS.fafCyan('│'));
68
+ // Impact achievements
69
+ if (credit.impact.length > 0) {
70
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('ā”œā”€ ')}Impact Achievements:`);
71
+ const recentImpacts = credit.impact.slice(-5);
72
+ recentImpacts.forEach(impact => {
73
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('│ ')}${championship_style_1.FAF_ICONS.star} ${impact}`);
74
+ });
75
+ if (credit.impact.length > 5) {
76
+ const remaining = credit.impact.length - 5;
77
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('│ ')}... and ${remaining} more achievements`);
78
+ }
79
+ }
80
+ }
81
+ /**
82
+ * Show credit earning history
83
+ */
84
+ async function showCreditHistory(fafPath) {
85
+ const credit = await (0, technical_credit_1.loadTechnicalCredit)(fafPath);
86
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('ā”œā”€ ')}Credit History:`);
87
+ if (credit.earned.length === 0) {
88
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('│ ')}No credits earned yet. Start building with:`);
89
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('│ ')}• ${championship_style_1.FAF_COLORS.fafOrange('faf init')} - Create perfect AI context`);
90
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('│ ')}• ${championship_style_1.FAF_COLORS.fafOrange('faf score')} - Improve completeness`);
91
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('│ ')}• ${championship_style_1.FAF_COLORS.fafOrange('faf bi-sync')} - Enable bi-directional sync`);
92
+ return;
93
+ }
94
+ // Show last 10 credit earnings
95
+ const recentEarnings = credit.earned.slice(-10).reverse();
96
+ recentEarnings.forEach((source, index) => {
97
+ const emoji = getCategoryEmoji(source.category);
98
+ const timeAgo = getTimeAgo(source.timestamp);
99
+ const connector = index === recentEarnings.length - 1 ? '└─' : 'ā”œā”€';
100
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan(`│ ${connector} `)}${emoji} +${source.points} ${source.action} (${timeAgo})`);
101
+ console.log(championship_style_1.FAF_COLORS.fafCyan('│ ') + championship_style_1.FAF_COLORS.fafGreen(source.impact));
102
+ });
103
+ if (credit.earned.length > 10) {
104
+ const remaining = credit.earned.length - 10;
105
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('│ ')}... and ${remaining} more credit actions`);
106
+ }
107
+ }
108
+ /**
109
+ * Clear credit history
110
+ */
111
+ async function clearCreditHistory() {
112
+ // This is a placeholder - in a real implementation, we'd ask for confirmation
113
+ console.log(`${championship_style_1.FAF_COLORS.fafOrange('ā”œā”€ ')}Credit history clearing not implemented yet`);
114
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('│ ')}Credits are permanent achievements - no clearing needed!`);
115
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('│ ')}Your technical credit represents real improvements made`);
116
+ }
117
+ /**
118
+ * Get emoji for credit category
119
+ */
120
+ function getCategoryEmoji(category) {
121
+ const emojis = {
122
+ context_improvement: 'šŸ“',
123
+ ai_compatibility: 'šŸ¤–',
124
+ performance: 'āš”ļø',
125
+ completeness: 'šŸ“Š',
126
+ sync_harmony: 'šŸ”—',
127
+ stack_discovery: 'šŸ”',
128
+ trust_building: 'šŸ›”ļø'
129
+ };
130
+ return emojis[category] || 'šŸ’Ž';
131
+ }
132
+ /**
133
+ * Get human readable time ago
134
+ */
135
+ function getTimeAgo(date) {
136
+ const now = new Date();
137
+ const diffMs = now.getTime() - date.getTime();
138
+ const diffMins = Math.floor(diffMs / (1000 * 60));
139
+ const diffHours = Math.floor(diffMs / (1000 * 60 * 60));
140
+ const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24));
141
+ if (diffMins < 60) {
142
+ return `${diffMins}m ago`;
143
+ }
144
+ if (diffHours < 24) {
145
+ return `${diffHours}h ago`;
146
+ }
147
+ return `${diffDays}d ago`;
148
+ }
149
+ //# sourceMappingURL=credit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credit.js","sourceRoot":"","sources":["../../src/commands/credit.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAmBH,sCAiCC;AAlDD,gEAAwF;AACxF,oDAAkD;AAClD,oEAIqC;AAQrC;;GAEG;AACI,KAAK,UAAU,aAAa,CAAC,UAAgC,EAAE;IACpE,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,8CAA8C;QAC9C,MAAM,OAAO,GAAG,MAAM,IAAA,wBAAW,GAAE,CAAC;QAEpC,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,OAAO,CAAC,GAAG,8BAAS,CAAC,GAAG,0BAA0B,CAAC,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,GAAG,+BAAU,CAAC,OAAO,CAAC,KAAK,CAAG,GAAG,mCAAc,CAAC,YAAY,EAAE,CAAC,CAAC;QAE5E,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,kBAAkB,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC;QACjD,CAAC;aAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAC3B,MAAM,iBAAiB,CAAC,OAAO,IAAI,SAAS,CAAC,CAAC;QAChD,CAAC;aAAM,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACzB,MAAM,kBAAkB,EAAE,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,MAAM,IAAA,yCAAsB,EAAC,OAAO,IAAI,SAAS,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,OAAO,CAAC,GAAG,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,GAAG,+BAAU,CAAC,OAAO,CAAC,GAAG,8BAAS,CAAC,UAAU,QAAQ,CAAG,wBAA0B,+BAAU,CAAC,OAAO,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;QAE/I,0BAA0B;QAC1B,IAAI,QAAQ,GAAG,EAAE,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,QAAQ,CAAC,GAAG,mCAAc,CAAC,YAAY,IAAI,QAAQ,oBAAoB,CAAC,CAAC,CAAC;QACnG,CAAC;IAEH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,+BAAU,CAAC,SAAS,CAAC,GAAG,8BAAS,CAAC,MAAM,yBAAyB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1I,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAAC,OAAgB;IAChD,MAAM,MAAM,GAAG,MAAM,IAAA,sCAAmB,EAAC,OAAO,CAAC,CAAC;IAElD,OAAO,CAAC,GAAG,CAAC,GAAG,+BAAU,CAAC,OAAO,CAAC,KAAK,CAAG,2BAA2B,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAErC,qBAAqB;IACrB,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IACjD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QAC7B,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACzD,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,IAAI,cAAc,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,GAAG,+BAAU,CAAC,OAAO,CAAC,KAAK,CAAG,sBAAsB,CAAC,CAAC;QAElE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;aACjC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;aAC3B,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE;YAC9B,MAAM,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,GAAG,+BAAU,CAAC,OAAO,CAAC,KAAK,CAAG,GAAG,KAAK,IAAI,QAAQ,KAAK,+BAAU,CAAC,QAAQ,CAAC,GAAG,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC;QACjH,CAAC,CAAC,CAAC;IACP,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAErC,sBAAsB;IACtB,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,+BAAU,CAAC,OAAO,CAAC,KAAK,CAAG,sBAAsB,CAAC,CAAC;QAElE,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9C,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YAC7B,OAAO,CAAC,GAAG,CAAC,GAAG,+BAAU,CAAC,OAAO,CAAC,KAAK,CAAG,GAAG,8BAAS,CAAC,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,GAAG,+BAAU,CAAC,OAAO,CAAC,KAAK,CAAG,WAAW,SAAS,oBAAoB,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAAC,OAAgB;IAC/C,MAAM,MAAM,GAAG,MAAM,IAAA,sCAAmB,EAAC,OAAO,CAAC,CAAC;IAElD,OAAO,CAAC,GAAG,CAAC,GAAG,+BAAU,CAAC,OAAO,CAAC,KAAK,CAAG,iBAAiB,CAAC,CAAC;IAE7D,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,+BAAU,CAAC,OAAO,CAAC,KAAK,CAAG,6CAA6C,CAAC,CAAC;QACzF,OAAO,CAAC,GAAG,CAAC,GAAG,+BAAU,CAAC,OAAO,CAAC,KAAK,CAAG,KAAO,+BAAU,CAAC,SAAS,CAAC,UAAU,CAAG,8BAA8B,CAAC,CAAC;QACnH,OAAO,CAAC,GAAG,CAAC,GAAG,+BAAU,CAAC,OAAO,CAAC,KAAK,CAAG,KAAO,+BAAU,CAAC,SAAS,CAAC,WAAW,CAAG,yBAAyB,CAAC,CAAC;QAC/G,OAAO,CAAC,GAAG,CAAC,GAAG,+BAAU,CAAC,OAAO,CAAC,KAAK,CAAG,KAAO,+BAAU,CAAC,SAAS,CAAC,aAAa,CAAG,+BAA+B,CAAC,CAAC;QACvH,OAAO;IACT,CAAC;IAED,+BAA+B;IAC/B,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IAE1D,cAAc,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;QACvC,MAAM,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,KAAK,KAAK,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QAEpE,OAAO,CAAC,GAAG,CAAC,GAAG,+BAAU,CAAC,OAAO,CAAC,MAAM,SAAS,GAAG,CACxC,GAAG,KAAK,KAAK,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,GAAG,CAAC,CAAC;QACxE,OAAO,CAAC,GAAG,CAAC,+BAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,+BAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,GAAG,+BAAU,CAAC,OAAO,CAAC,KAAK,CAAG,WAAW,SAAS,sBAAsB,CAAC,CAAC;IACxF,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB;IAC/B,8EAA8E;IAC9E,OAAO,CAAC,GAAG,CAAC,GAAG,+BAAU,CAAC,SAAS,CAAC,KAAK,CAAG,6CAA6C,CAAC,CAAC;IAC3F,OAAO,CAAC,GAAG,CAAC,GAAG,+BAAU,CAAC,OAAO,CAAC,KAAK,CAAG,0DAA0D,CAAC,CAAC;IACtG,OAAO,CAAC,GAAG,CAAC,GAAG,+BAAU,CAAC,OAAO,CAAC,KAAK,CAAG,yDAAyD,CAAC,CAAC;AACvG,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,QAAgB;IACxC,MAAM,MAAM,GAA2B;QACrC,mBAAmB,EAAE,IAAI;QACzB,gBAAgB,EAAE,IAAI;QACtB,WAAW,EAAE,IAAI;QACjB,YAAY,EAAE,IAAI;QAClB,YAAY,EAAE,IAAI;QAClB,eAAe,EAAE,IAAI;QACrB,cAAc,EAAE,KAAK;KACtB,CAAC;IAEF,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,IAAU;IAC5B,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAE5D,IAAI,QAAQ,GAAG,EAAE,EAAE,CAAC;QAAA,OAAO,GAAG,QAAQ,OAAO,CAAC;IAAA,CAAC;IAC/C,IAAI,SAAS,GAAG,EAAE,EAAE,CAAC;QAAA,OAAO,GAAG,SAAS,OAAO,CAAC;IAAA,CAAC;IACjD,OAAO,GAAG,QAAQ,OAAO,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * šŸ“ faf edit - Quick edit helper
3
+ * Opens .faf file in default editor or shows edit instructions
4
+ */
5
+ export declare function editFafFile(file?: string, options?: any): Promise<void>;
6
+ //# sourceMappingURL=edit-helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit-helper.d.ts","sourceRoot":"","sources":["../../src/commands/edit-helper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,wBAAsB,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,GAAQ,iBA4CjE"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ /**
3
+ * šŸ“ faf edit - Quick edit helper
4
+ * Opens .faf file in default editor or shows edit instructions
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.editFafFile = editFafFile;
11
+ const chalk_1 = __importDefault(require("chalk"));
12
+ const child_process_1 = require("child_process");
13
+ const file_utils_1 = require("../utils/file-utils");
14
+ async function editFafFile(file, options = {}) {
15
+ try {
16
+ const fafPath = file || await (0, file_utils_1.findFafFile)();
17
+ if (!fafPath) {
18
+ console.error(chalk_1.default.red('āŒ No .faf file found'));
19
+ console.log(chalk_1.default.yellow('šŸ’” Run "faf init" to create one'));
20
+ process.exit(1);
21
+ }
22
+ console.log(chalk_1.default.blue(`\nšŸ“ Edit your .faf file to improve your score:\n`));
23
+ console.log(chalk_1.default.white(` File: ${fafPath}\n`));
24
+ console.log(chalk_1.default.cyan(' Key fields to fill for higher score:'));
25
+ console.log(chalk_1.default.gray(' HUMAN Context (most important):'));
26
+ console.log(chalk_1.default.gray(' • human_context.who - Who is this for?'));
27
+ console.log(chalk_1.default.gray(' • human_context.what - What problem does it solve?'));
28
+ console.log(chalk_1.default.gray(' • human_context.why - Why does it matter?'));
29
+ console.log(chalk_1.default.gray(' • human_context.where - Where will it be used?'));
30
+ console.log(chalk_1.default.gray(' • human_context.when - When is it needed?'));
31
+ console.log(chalk_1.default.gray(' • human_context.how - How will it work?'));
32
+ console.log();
33
+ console.log(chalk_1.default.gray(' Technical Context:'));
34
+ console.log(chalk_1.default.gray(' • stack.frontend - Frontend framework'));
35
+ console.log(chalk_1.default.gray(' • stack.backend - Backend technology'));
36
+ console.log(chalk_1.default.gray(' • stack.database - Database system'));
37
+ console.log(chalk_1.default.gray(' • project.goal - Project objective'));
38
+ console.log(chalk_1.default.green('\n After editing, run: ') + chalk_1.default.white.bold('faf score') + chalk_1.default.green(' to see improvements'));
39
+ // Try to open in default editor if requested
40
+ if (options.open) {
41
+ const editor = process.env.EDITOR || 'vi';
42
+ console.log(chalk_1.default.gray(`\n Opening in ${editor}...`));
43
+ (0, child_process_1.spawn)(editor, [fafPath], { stdio: 'inherit' });
44
+ }
45
+ else {
46
+ console.log(chalk_1.default.gray('\n šŸ’” Tip: Use "faf edit --open" to open in your default editor'));
47
+ }
48
+ }
49
+ catch (error) {
50
+ console.error(chalk_1.default.red('šŸ’„ Edit guidance failed:'));
51
+ console.error(chalk_1.default.red(error instanceof Error ? error.message : String(error)));
52
+ process.exit(1);
53
+ }
54
+ }
55
+ //# sourceMappingURL=edit-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit-helper.js","sourceRoot":"","sources":["../../src/commands/edit-helper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * āœļø Edit Command - Interactive .faf editor
3
+ * Claude Code consistency: Similar to /edit command
4
+ */
5
+ export interface EditCommandOptions {
6
+ editor?: string;
7
+ section?: string;
8
+ validate?: boolean;
9
+ }
10
+ /**
11
+ * Interactive .faf file editor with validation
12
+ */
13
+ export declare function editCommand(options?: EditCommandOptions): Promise<void>;
14
+ //# sourceMappingURL=edit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edit.d.ts","sourceRoot":"","sources":["../../src/commands/edit.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAeH,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwEjF"}