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,300 @@
1
+ "use strict";
2
+ /**
3
+ * 🔄 faf sync - Sync Command
4
+ * Sync .faf file with project changes (package.json, git, etc.)
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.syncFafFile = syncFafFile;
44
+ const chalk_1 = __importDefault(require("chalk"));
45
+ const fs_1 = require("fs");
46
+ const YAML = __importStar(require("yaml"));
47
+ const file_utils_1 = require("../utils/file-utils");
48
+ async function syncFafFile(file, options = {}) {
49
+ try {
50
+ const fafPath = file || (await (0, file_utils_1.findFafFile)());
51
+ if (!fafPath) {
52
+ console.log(chalk_1.default.red("❌ No .faf file found"));
53
+ console.log(chalk_1.default.yellow('💡 Run "faf init" to create one'));
54
+ process.exit(1);
55
+ }
56
+ console.log(chalk_1.default.blue(`🔄 Syncing: ${fafPath}`));
57
+ // Read current .faf file
58
+ const content = await fs_1.promises.readFile(fafPath, "utf-8");
59
+ const fafData = YAML.parse(content);
60
+ // Detect changes
61
+ const changes = await detectProjectChanges(fafData);
62
+ if (changes.length === 0) {
63
+ console.log(chalk_1.default.green("☑️ .faf file is up to date"));
64
+ return;
65
+ }
66
+ // Show detected changes
67
+ console.log(chalk_1.default.yellow(`⚡ Found ${changes.length} potential updates:`));
68
+ changes.forEach((change, index) => {
69
+ console.log(chalk_1.default.yellow(` ${index + 1}. ${change.description}`));
70
+ if (change.oldValue !== change.newValue) {
71
+ console.log(chalk_1.default.gray(` ${change.oldValue} → ${change.newValue}`));
72
+ }
73
+ });
74
+ if (options.dryRun) {
75
+ console.log(chalk_1.default.blue("\n🔍 Dry run complete - no changes applied"));
76
+ return;
77
+ }
78
+ // Apply changes
79
+ if (options.auto) {
80
+ console.log(chalk_1.default.blue("\n🤖 Auto-applying changes..."));
81
+ applyChanges(fafData, changes);
82
+ }
83
+ else {
84
+ // Interactive mode (simplified for now)
85
+ console.log(chalk_1.default.yellow("\n💡 Run with --auto to apply changes automatically"));
86
+ console.log(chalk_1.default.yellow(" Or edit .faf file manually"));
87
+ return;
88
+ }
89
+ // Update generated timestamp
90
+ fafData.generated = new Date().toISOString();
91
+ // Write updated .faf file
92
+ const updatedContent = YAML.stringify(fafData);
93
+ await fs_1.promises.writeFile(fafPath, updatedContent, "utf-8");
94
+ console.log(chalk_1.default.green("☑️ .faf file synced successfully"));
95
+ console.log(chalk_1.default.gray(` Applied ${changes.length} changes`));
96
+ }
97
+ catch (error) {
98
+ console.log(chalk_1.default.red("💥 Sync failed:"));
99
+ console.log(chalk_1.default.red(error instanceof Error ? error.message : String(error)));
100
+ process.exit(1);
101
+ }
102
+ }
103
+ async function detectProjectChanges(fafData) {
104
+ const changes = [];
105
+ try {
106
+ // Check package.json changes
107
+ const packageJsonPath = await (0, file_utils_1.findPackageJson)();
108
+ if (packageJsonPath) {
109
+ const packageContent = await fs_1.promises.readFile(packageJsonPath, "utf-8");
110
+ const packageData = JSON.parse(packageContent);
111
+ // Project name change (flat structure)
112
+ if (packageData.name && packageData.name !== fafData.projectName) {
113
+ changes.push({
114
+ path: "projectName",
115
+ description: "Project name changed in package.json",
116
+ oldValue: fafData.projectName || "undefined",
117
+ newValue: packageData.name,
118
+ confidence: "high",
119
+ });
120
+ }
121
+ // Description/goal change (flat structure)
122
+ if (packageData.description &&
123
+ packageData.description !== fafData.projectGoal) {
124
+ changes.push({
125
+ path: "projectGoal",
126
+ description: "Project description changed in package.json",
127
+ oldValue: fafData.projectGoal || "undefined",
128
+ newValue: packageData.description,
129
+ confidence: "medium",
130
+ });
131
+ }
132
+ // Dependencies changes - detect frameworks (flat structure)
133
+ const deps = {
134
+ ...packageData.dependencies,
135
+ ...packageData.devDependencies,
136
+ };
137
+ // Check for framework changes
138
+ if (deps.svelte && !fafData.framework?.includes("Svelte")) {
139
+ changes.push({
140
+ path: "framework",
141
+ description: "Svelte dependency detected",
142
+ oldValue: fafData.framework || "",
143
+ newValue: "Svelte",
144
+ confidence: "high",
145
+ });
146
+ }
147
+ if (deps.react && !fafData.framework?.includes("React")) {
148
+ changes.push({
149
+ path: "framework",
150
+ description: "React dependency detected",
151
+ oldValue: fafData.framework || "",
152
+ newValue: "React",
153
+ confidence: "high",
154
+ });
155
+ }
156
+ if (deps.vue && !fafData.framework?.includes("Vue")) {
157
+ changes.push({
158
+ path: "framework",
159
+ description: "Vue dependency detected",
160
+ oldValue: fafData.framework || "",
161
+ newValue: "Vue",
162
+ confidence: "high",
163
+ });
164
+ }
165
+ if (deps["@angular/core"] && !fafData.framework?.includes("Angular")) {
166
+ changes.push({
167
+ path: "framework",
168
+ description: "Angular dependency detected",
169
+ oldValue: fafData.framework || "",
170
+ newValue: "Angular",
171
+ confidence: "high",
172
+ });
173
+ }
174
+ // Check for CSS frameworks
175
+ if (deps.tailwindcss && !fafData.cssFramework?.includes("Tailwind")) {
176
+ changes.push({
177
+ path: "cssFramework",
178
+ description: "Tailwind CSS dependency detected",
179
+ oldValue: fafData.cssFramework || "",
180
+ newValue: "Tailwind CSS",
181
+ confidence: "high",
182
+ });
183
+ }
184
+ if (deps.bootstrap && !fafData.cssFramework?.includes("Bootstrap")) {
185
+ changes.push({
186
+ path: "cssFramework",
187
+ description: "Bootstrap dependency detected",
188
+ oldValue: fafData.cssFramework || "",
189
+ newValue: "Bootstrap",
190
+ confidence: "high",
191
+ });
192
+ }
193
+ // Check for UI libraries
194
+ if (deps["@mui/material"] && !fafData.uiLibrary?.includes("MUI")) {
195
+ changes.push({
196
+ path: "uiLibrary",
197
+ description: "Material-UI (MUI) dependency detected",
198
+ oldValue: fafData.uiLibrary || "",
199
+ newValue: "Material-UI (MUI)",
200
+ confidence: "high",
201
+ });
202
+ }
203
+ if (deps.antd && !fafData.uiLibrary?.includes("Ant Design")) {
204
+ changes.push({
205
+ path: "uiLibrary",
206
+ description: "Ant Design dependency detected",
207
+ oldValue: fafData.uiLibrary || "",
208
+ newValue: "Ant Design",
209
+ confidence: "high",
210
+ });
211
+ }
212
+ if (deps["@chakra-ui/react"] && !fafData.uiLibrary?.includes("Chakra")) {
213
+ changes.push({
214
+ path: "uiLibrary",
215
+ description: "Chakra UI dependency detected",
216
+ oldValue: fafData.uiLibrary || "",
217
+ newValue: "Chakra UI",
218
+ confidence: "high",
219
+ });
220
+ }
221
+ // Check for state management
222
+ if ((deps.redux || deps["@reduxjs/toolkit"]) && !fafData.stateManagement?.includes("Redux")) {
223
+ changes.push({
224
+ path: "stateManagement",
225
+ description: "Redux dependency detected",
226
+ oldValue: fafData.stateManagement || "",
227
+ newValue: "Redux Toolkit",
228
+ confidence: "high",
229
+ });
230
+ }
231
+ if (deps.zustand && !fafData.stateManagement?.includes("Zustand")) {
232
+ changes.push({
233
+ path: "stateManagement",
234
+ description: "Zustand dependency detected",
235
+ oldValue: fafData.stateManagement || "",
236
+ newValue: "Zustand",
237
+ confidence: "high",
238
+ });
239
+ }
240
+ if (deps.jotai && !fafData.stateManagement?.includes("Jotai")) {
241
+ changes.push({
242
+ path: "stateManagement",
243
+ description: "Jotai dependency detected",
244
+ oldValue: fafData.stateManagement || "",
245
+ newValue: "Jotai",
246
+ confidence: "high",
247
+ });
248
+ }
249
+ // Check for build tools
250
+ if (deps.vite && !fafData.buildTool?.includes("Vite")) {
251
+ changes.push({
252
+ path: "buildTool",
253
+ description: "Vite build tool detected",
254
+ oldValue: fafData.buildTool || "",
255
+ newValue: "Vite",
256
+ confidence: "high",
257
+ });
258
+ }
259
+ if (deps.webpack && !fafData.buildTool?.includes("Webpack")) {
260
+ changes.push({
261
+ path: "buildTool",
262
+ description: "Webpack build tool detected",
263
+ oldValue: fafData.buildTool || "",
264
+ newValue: "Webpack",
265
+ confidence: "high",
266
+ });
267
+ }
268
+ }
269
+ // Check if generated timestamp is very old (30+ days)
270
+ if (fafData.generated) {
271
+ const generatedDate = new Date(fafData.generated);
272
+ const daysSince = Math.abs(Date.now() - generatedDate.getTime()) / (1000 * 60 * 60 * 24);
273
+ if (daysSince > 30) {
274
+ changes.push({
275
+ path: "generated",
276
+ description: `Generated timestamp is ${Math.round(daysSince)} days old`,
277
+ oldValue: fafData.generated,
278
+ newValue: new Date().toISOString(),
279
+ confidence: "high",
280
+ });
281
+ }
282
+ }
283
+ }
284
+ catch {
285
+ // Continue with what we have
286
+ }
287
+ return changes;
288
+ }
289
+ function applyChanges(fafData, changes) {
290
+ changes.forEach((change) => {
291
+ if (change.confidence === "high" || change.confidence === "medium") {
292
+ setNestedValue(fafData, change.path, change.newValue);
293
+ }
294
+ });
295
+ }
296
+ function setNestedValue(obj, path, value) {
297
+ // For flat .faf structure, path is just the direct property name
298
+ obj[path] = value;
299
+ }
300
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * 📝 Todo Command - Claude-Inspired Task Management
3
+ * Transform low scores into exciting gamified todo lists
4
+ */
5
+ export interface TodoCommandOptions {
6
+ show?: boolean;
7
+ complete?: string;
8
+ reset?: boolean;
9
+ }
10
+ /**
11
+ * Main improve command - generates Claude-inspired todo lists
12
+ */
13
+ export declare function todoCommand(options?: TodoCommandOptions): Promise<void>;
14
+ //# sourceMappingURL=todo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todo.d.ts","sourceRoot":"","sources":["../../src/commands/todo.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAwCjF"}
@@ -0,0 +1,279 @@
1
+ "use strict";
2
+ /**
3
+ * 📝 Todo Command - Claude-Inspired Task Management
4
+ * Transform low scores into exciting gamified todo lists
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.todoCommand = todoCommand;
41
+ const score_calculator_1 = require("../scoring/score-calculator");
42
+ const file_utils_1 = require("../utils/file-utils");
43
+ const claude_todo_engine_1 = require("../engines/claude-todo-engine");
44
+ const championship_style_1 = require("../utils/championship-style");
45
+ const fs = __importStar(require("fs/promises"));
46
+ const path = __importStar(require("path"));
47
+ const YAML = __importStar(require("yaml"));
48
+ /**
49
+ * Main improve command - generates Claude-inspired todo lists
50
+ */
51
+ async function todoCommand(options = {}) {
52
+ try {
53
+ const startTime = Date.now();
54
+ console.log(championship_style_1.FAF_COLORS.fafCyan(`${championship_style_1.FAF_ICONS.clipboard} Claude-Inspired Todo System`));
55
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('├─ ')}${championship_style_1.BRAND_MESSAGES.optimization}`);
56
+ const fafPath = await (0, file_utils_1.findFafFile)();
57
+ if (!fafPath) {
58
+ console.log(`${championship_style_1.FAF_COLORS.fafOrange('└─ ')}No .faf file found. Run ${championship_style_1.FAF_COLORS.fafCyan('faf init')} first.`);
59
+ return;
60
+ }
61
+ if (options.complete) {
62
+ await completeTask(options.complete, fafPath);
63
+ return;
64
+ }
65
+ if (options.reset) {
66
+ await resetTodoList(fafPath);
67
+ return;
68
+ }
69
+ if (options.show) {
70
+ await showCurrentTodoList(fafPath);
71
+ return;
72
+ }
73
+ // Generate new improvement plan
74
+ await generateImprovementPlan(fafPath);
75
+ const duration = Date.now() - startTime;
76
+ console.log();
77
+ console.log(championship_style_1.FAF_COLORS.fafGreen(`${championship_style_1.FAF_ICONS.trophy} Improvement plan ready in ${duration}ms!`));
78
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan(`${championship_style_1.FAF_ICONS.magic_wand} Try: `)}faf improve --show${championship_style_1.FAF_COLORS.fafCyan(' - View your todo list')}`);
79
+ }
80
+ catch (error) {
81
+ console.error(championship_style_1.FAF_COLORS.fafOrange(`${championship_style_1.FAF_ICONS.shield} Improvement failed: ${error instanceof Error ? error.message : String(error)}`));
82
+ process.exit(1);
83
+ }
84
+ }
85
+ /**
86
+ * Generate new improvement plan based on current score
87
+ */
88
+ async function generateImprovementPlan(fafPath) {
89
+ // Calculate current score and context
90
+ const scoreResult = await (0, score_calculator_1.calculateFafScore)(undefined, path.dirname(fafPath));
91
+ const projectDir = path.dirname(fafPath);
92
+ // Get existing files for context
93
+ const existingFiles = await getProjectFiles(projectDir);
94
+ // Read .faf for missing context analysis
95
+ const fafContent = await fs.readFile(fafPath, 'utf-8');
96
+ const fafData = YAML.parse(fafContent) || {};
97
+ const missingSlots = identifyMissingSlots(fafData, existingFiles);
98
+ // Create todo engine and generate plan
99
+ const engine = (0, claude_todo_engine_1.createClaudeTodoEngine)();
100
+ const todoList = engine.generateTodoList({
101
+ currentScore: scoreResult.totalScore,
102
+ projectType: fafData.project?.name || 'unknown',
103
+ missingSlots,
104
+ existingFiles,
105
+ techStack: fafData.stack || {},
106
+ aiPreference: 'claude' // Default to Claude-style tasks
107
+ });
108
+ // Save todo list
109
+ await saveTodoList(todoList, fafPath);
110
+ // Display the plan
111
+ displayTodoList(todoList);
112
+ }
113
+ /**
114
+ * Display todo list in championship style
115
+ */
116
+ function displayTodoList(todoList) {
117
+ const engine = (0, claude_todo_engine_1.createClaudeTodoEngine)();
118
+ const progress = engine.getProgress(todoList);
119
+ console.log();
120
+ console.log(`┌─────────────────────────────────────────┐`);
121
+ console.log(`│ ${championship_style_1.FAF_COLORS.fafCyan('🤖 Claude-Inspired Improvement Plan')} │`);
122
+ console.log(`│ ${championship_style_1.FAF_COLORS.fafOrange(`Current: ${todoList.currentScore}%`)} → ${championship_style_1.FAF_COLORS.fafGreen(`Target: ${todoList.targetScore}%`)} │`);
123
+ console.log(`└─────────────────────────────────────────┘`);
124
+ console.log();
125
+ console.log(championship_style_1.FAF_COLORS.fafCyan('📝 Your Championship Todo List:'));
126
+ todoList.items.forEach((item, index) => {
127
+ const connector = index === todoList.items.length - 1 ? '└─' : '├─';
128
+ const checkbox = item.completed ? '☑️' : '[ ]';
129
+ const impactColor = item.impact >= 15 ? championship_style_1.FAF_COLORS.fafGreen :
130
+ item.impact >= 10 ? championship_style_1.FAF_COLORS.fafOrange : championship_style_1.FAF_COLORS.fafCyan;
131
+ const highImpact = item.impact >= 15 ? ' 💯 HIGH IMPACT' : '';
132
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan(`${connector} `)}${checkbox} ${item.title} ${impactColor(`(+${item.impact} points)`)}${highImpact}`);
133
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan(' ')}${championship_style_1.FAF_COLORS.fafCyan(`~ ${item.estimatedMinutes}min · ${item.description}`)}`);
134
+ });
135
+ console.log();
136
+ console.log(`🏆 Complete all tasks → ${championship_style_1.FAF_COLORS.fafGreen(`${todoList.targetScore}% score!`)} Championship ready!`);
137
+ console.log();
138
+ console.log(championship_style_1.FAF_COLORS.fafCyan('💡 Complete tasks with: ') + championship_style_1.FAF_COLORS.fafOrange('faf improve --complete <task-number>'));
139
+ }
140
+ /**
141
+ * Show current todo list if it exists
142
+ */
143
+ async function showCurrentTodoList(fafPath) {
144
+ const todoList = await loadTodoList(fafPath);
145
+ if (!todoList) {
146
+ console.log(`${championship_style_1.FAF_COLORS.fafOrange('└─ ')}No active improvement plan. Run ${championship_style_1.FAF_COLORS.fafCyan('faf improve')} to create one.`);
147
+ return;
148
+ }
149
+ const engine = (0, claude_todo_engine_1.createClaudeTodoEngine)();
150
+ const progress = engine.getProgress(todoList);
151
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('├─ ')}Current Progress: ${claude_todo_engine_1.TodoEngineUtils.formatProgressCLI(progress)}`);
152
+ console.log();
153
+ displayTodoList(todoList);
154
+ }
155
+ /**
156
+ * Complete a specific task
157
+ */
158
+ async function completeTask(taskIdentifier, fafPath) {
159
+ const todoList = await loadTodoList(fafPath);
160
+ if (!todoList) {
161
+ console.log(`${championship_style_1.FAF_COLORS.fafOrange('└─ ')}No active todo list. Run ${championship_style_1.FAF_COLORS.fafCyan('faf improve')} first.`);
162
+ return;
163
+ }
164
+ // Parse task identifier (could be number or partial title)
165
+ const taskIndex = parseInt(taskIdentifier) - 1; // 1-based indexing for users
166
+ let task;
167
+ if (!isNaN(taskIndex) && taskIndex >= 0 && taskIndex < todoList.items.length) {
168
+ task = todoList.items[taskIndex];
169
+ }
170
+ else {
171
+ // Try to find by partial title match
172
+ task = todoList.items.find(item => item.title.toLowerCase().includes(taskIdentifier.toLowerCase()));
173
+ }
174
+ if (!task) {
175
+ console.log(`${championship_style_1.FAF_COLORS.fafOrange('└─ ')}Task "${taskIdentifier}" not found. Use ${championship_style_1.FAF_COLORS.fafCyan('faf improve --show')} to see available tasks.`);
176
+ return;
177
+ }
178
+ if (task.completed) {
179
+ console.log(`${championship_style_1.FAF_COLORS.fafOrange('└─ ')}Task "${task.title}" is already completed! 🎉`);
180
+ return;
181
+ }
182
+ // Recalculate score to get new project score
183
+ const scoreResult = await (0, score_calculator_1.calculateFafScore)(undefined, path.dirname(fafPath));
184
+ // Complete the task
185
+ const engine = (0, claude_todo_engine_1.createClaudeTodoEngine)();
186
+ const improvement = engine.completeTask(todoList, task.id, scoreResult.totalScore);
187
+ // Save updated todo list
188
+ await saveTodoList(todoList, fafPath);
189
+ // Celebrate!
190
+ console.log();
191
+ console.log(claude_todo_engine_1.TodoEngineUtils.generateCelebration(improvement));
192
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('├─ ')}Task completed: ${task.title}`);
193
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('└─ ')}Score improvement: ${improvement.before}% → ${improvement.after}%`);
194
+ // Check for championship completion
195
+ if (improvement.celebrationLevel === 'championship') {
196
+ console.log();
197
+ console.log(championship_style_1.FAF_COLORS.fafGreen('🎊 CHAMPIONSHIP ACHIEVED! 🏁'));
198
+ console.log(championship_style_1.FAF_COLORS.fafGreen('🏆 Your AI context is now maximally optimized!'));
199
+ console.log(championship_style_1.FAF_COLORS.fafCyan('💎 Technical Credit: +25 points (Perfect Score Bonus)'));
200
+ }
201
+ }
202
+ /**
203
+ * Reset todo list
204
+ */
205
+ async function resetTodoList(fafPath) {
206
+ const todoPath = getTodoListPath(fafPath);
207
+ if (await (0, file_utils_1.fileExists)(todoPath)) {
208
+ await fs.unlink(todoPath);
209
+ console.log(`${championship_style_1.FAF_COLORS.fafGreen('└─ ')}Todo list reset! Run ${championship_style_1.FAF_COLORS.fafCyan('faf improve')} to create a new one.`);
210
+ }
211
+ else {
212
+ console.log(`${championship_style_1.FAF_COLORS.fafOrange('└─ ')}No todo list to reset.`);
213
+ }
214
+ }
215
+ // =====================================
216
+ // HELPER FUNCTIONS
217
+ // =====================================
218
+ function getTodoListPath(fafPath) {
219
+ const projectDir = path.dirname(fafPath);
220
+ return path.join(projectDir, '.faf-todos.json');
221
+ }
222
+ async function saveTodoList(todoList, fafPath) {
223
+ const todoPath = getTodoListPath(fafPath);
224
+ await fs.writeFile(todoPath, JSON.stringify(todoList, null, 2));
225
+ }
226
+ async function loadTodoList(fafPath) {
227
+ const todoPath = getTodoListPath(fafPath);
228
+ if (!(await (0, file_utils_1.fileExists)(todoPath))) {
229
+ return null;
230
+ }
231
+ try {
232
+ const content = await fs.readFile(todoPath, 'utf-8');
233
+ const data = JSON.parse(content);
234
+ // Convert date strings back to Date objects
235
+ data.createdAt = new Date(data.createdAt);
236
+ data.updatedAt = new Date(data.updatedAt);
237
+ if (data.completedAt) {
238
+ data.completedAt = new Date(data.completedAt);
239
+ }
240
+ data.items.forEach((item) => {
241
+ if (item.completedAt) {
242
+ item.completedAt = new Date(item.completedAt);
243
+ }
244
+ });
245
+ return data;
246
+ }
247
+ catch {
248
+ return null;
249
+ }
250
+ }
251
+ async function getProjectFiles(projectDir) {
252
+ try {
253
+ const files = await fs.readdir(projectDir);
254
+ return files.filter(file => !file.startsWith('.') || file === '.gitignore');
255
+ }
256
+ catch {
257
+ return [];
258
+ }
259
+ }
260
+ function identifyMissingSlots(fafData, existingFiles) {
261
+ const missing = [];
262
+ if (!fafData.project?.goal) {
263
+ missing.push('project_goals');
264
+ }
265
+ if (!fafData.project?.description) {
266
+ missing.push('project_description');
267
+ }
268
+ if (!existingFiles.includes('README.md')) {
269
+ missing.push('readme');
270
+ }
271
+ if (!fafData.stack || Object.keys(fafData.stack).length === 0) {
272
+ missing.push('tech_stack');
273
+ }
274
+ if (!fafData.human_context) {
275
+ missing.push('human_context');
276
+ }
277
+ return missing;
278
+ }
279
+ //# sourceMappingURL=todo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"todo.js","sourceRoot":"","sources":["../../src/commands/todo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * 🧡 Trust Dashboard Command - The Emotional Core
3
+ * Transforms developer psychology from hope-driven to trust-driven AI development
4
+ *
5
+ * Mission: "I don't worry about ANY of that AI shit anymore"
6
+ */
7
+ export interface TrustScore {
8
+ overall: number;
9
+ contextCompleteness: number;
10
+ aiCompatibility: number;
11
+ freshnessScore: number;
12
+ verificationStatus: 'verified' | 'unverified' | 'failed';
13
+ }
14
+ export interface TrustDashboardOptions {
15
+ detailed?: boolean;
16
+ confidence?: boolean;
17
+ garage?: boolean;
18
+ panic?: boolean;
19
+ guarantee?: boolean;
20
+ }
21
+ /**
22
+ * Calculate comprehensive trust score based on .faf quality
23
+ */
24
+ export declare function calculateTrustScore(fafPath: string): Promise<TrustScore>;
25
+ /**
26
+ * Display the Trust Dashboard - the emotional core UI
27
+ */
28
+ export declare function displayTrustDashboard(fafPath: string, trustScore: TrustScore, detailed?: boolean): Promise<void>;
29
+ /**
30
+ * Main trust command handler
31
+ */
32
+ export declare function trustCommand(options?: TrustDashboardOptions): Promise<void>;
33
+ //# sourceMappingURL=trust.d.ts.map