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,260 @@
1
+ "use strict";
2
+ /**
3
+ * šŸš€ Share Command - Universal .faf Distribution System
4
+ * Secure sharing of .faf files with automatic sanitization
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.shareCommand = shareCommand;
41
+ const championship_style_1 = require("../utils/championship-style");
42
+ const fs = __importStar(require("fs/promises"));
43
+ const path = __importStar(require("path"));
44
+ const YAML = __importStar(require("yaml"));
45
+ /**
46
+ * Share .faf file with automatic sanitization
47
+ */
48
+ async function shareCommand(fafPath, options = {}) {
49
+ try {
50
+ const startTime = Date.now();
51
+ console.log(championship_style_1.FAF_COLORS.fafCyan(`${championship_style_1.FAF_ICONS.rocket} FAF Universal Sharing`));
52
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('ā”œā”€ ')}Secure distribution with auto-sanitization`);
53
+ // Find .faf file
54
+ const resolvedPath = await findFafFile(fafPath);
55
+ // Load and parse .faf
56
+ const fafContent = await fs.readFile(resolvedPath, 'utf-8');
57
+ const fafData = YAML.parse(fafContent);
58
+ // Sanitize for sharing
59
+ const sanitizedData = options.private ? fafData : await sanitizeFafData(fafData, options);
60
+ // Generate shareable version
61
+ const shareResult = await generateShareableVersion(sanitizedData, options);
62
+ // Display results
63
+ await displayShareResults(shareResult, options);
64
+ const duration = Date.now() - startTime;
65
+ console.log();
66
+ console.log(championship_style_1.FAF_COLORS.fafGreen(`${championship_style_1.FAF_ICONS.trophy} Share ready in ${duration}ms!`));
67
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan(`${championship_style_1.FAF_ICONS.magic_wand} Pro tip: `)}Add --anonymous to remove author info`);
68
+ }
69
+ catch (error) {
70
+ console.error(championship_style_1.FAF_COLORS.fafOrange(`${championship_style_1.FAF_ICONS.shield} Share failed: ${error instanceof Error ? error.message : String(error)}`));
71
+ process.exit(1);
72
+ }
73
+ }
74
+ /**
75
+ * Find .faf file in current directory or specified path
76
+ */
77
+ async function findFafFile(fafPath) {
78
+ if (fafPath) {
79
+ return path.resolve(fafPath);
80
+ }
81
+ const currentDir = process.cwd();
82
+ const defaultPath = path.join(currentDir, '.faf');
83
+ try {
84
+ await fs.access(defaultPath);
85
+ return defaultPath;
86
+ }
87
+ catch {
88
+ throw new Error('No .faf file found. Run `faf init` first or specify a path.');
89
+ }
90
+ }
91
+ /**
92
+ * Sanitize .faf data for public sharing
93
+ */
94
+ async function sanitizeFafData(fafData, options) {
95
+ const sanitized = JSON.parse(JSON.stringify(fafData)); // Deep clone
96
+ // Remove sensitive information
97
+ const sensitiveFields = [
98
+ 'ai_instructions.warnings',
99
+ 'preferences.commit_style',
100
+ 'human_context.who',
101
+ 'human_context.where',
102
+ 'human_context.when',
103
+ 'project.generated',
104
+ 'ai_scoring_details.system_date'
105
+ ];
106
+ sensitiveFields.forEach(field => {
107
+ const keys = field.split('.');
108
+ let current = sanitized;
109
+ for (let i = 0; i < keys.length - 1; i++) {
110
+ if (current[keys[i]]) {
111
+ current = current[keys[i]];
112
+ }
113
+ else {
114
+ break;
115
+ }
116
+ }
117
+ if (current && current[keys[keys.length - 1]] !== undefined) {
118
+ delete current[keys[keys.length - 1]];
119
+ }
120
+ });
121
+ // Standardize author info
122
+ if (sanitized.project) {
123
+ sanitized.project.author = 'standard@faf.one';
124
+ }
125
+ // Remove author info if anonymous
126
+ if (options.anonymous) {
127
+ delete sanitized.project?.author;
128
+ delete sanitized.human_context?.who;
129
+ }
130
+ // Add sharing metadata
131
+ sanitized.sharing_metadata = {
132
+ shared_at: new Date().toISOString(),
133
+ shared_by: options.anonymous ? 'anonymous' : 'faf-cli',
134
+ sanitized: !options.private,
135
+ description: options.description || 'Shared .faf context',
136
+ expires: calculateExpiration(options.expires || '7d'),
137
+ format_version: '2.7.0'
138
+ };
139
+ return sanitized;
140
+ }
141
+ /**
142
+ * Generate shareable version in requested format
143
+ */
144
+ async function generateShareableVersion(sanitizedData, options) {
145
+ const format = options.format || 'yaml';
146
+ switch (format) {
147
+ case 'json':
148
+ return {
149
+ format: 'json',
150
+ content: JSON.stringify(sanitizedData, null, 2),
151
+ filename: `shared-context-${generateShareId()}.json`,
152
+ size: JSON.stringify(sanitizedData).length
153
+ };
154
+ case 'url':
155
+ // For demo purposes - in production this would upload to a sharing service
156
+ return {
157
+ format: 'url',
158
+ content: `https://fafcli.dev/share/${generateShareId()}`,
159
+ filename: 'shareable-url.txt',
160
+ size: sanitizedData ? JSON.stringify(sanitizedData).length : 0
161
+ };
162
+ default: // yaml
163
+ const yamlContent = YAML.stringify(sanitizedData, { indent: 2 });
164
+ return {
165
+ format: 'yaml',
166
+ content: yamlContent,
167
+ filename: `shared-context-${generateShareId()}.faf`,
168
+ size: yamlContent.length
169
+ };
170
+ }
171
+ }
172
+ /**
173
+ * Display sharing results
174
+ */
175
+ async function displayShareResults(shareResult, options) {
176
+ console.log();
177
+ console.log(`ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”`);
178
+ console.log(`│ ${championship_style_1.FAF_COLORS.fafCyan('šŸ“¤ Share Results')} │`);
179
+ console.log(`ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜`);
180
+ console.log();
181
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('ā”œā”€ ')}${championship_style_1.FAF_COLORS.fafGreen('Format:')} ${shareResult.format.toUpperCase()}`);
182
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('ā”œā”€ ')}${championship_style_1.FAF_COLORS.fafGreen('Size:')} ${formatBytes(shareResult.size)}`);
183
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('ā”œā”€ ')}${championship_style_1.FAF_COLORS.fafGreen('Filename:')} ${shareResult.filename}`);
184
+ if (options.expires) {
185
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('ā”œā”€ ')}${championship_style_1.FAF_COLORS.fafGreen('Expires:')} ${options.expires}`);
186
+ }
187
+ if (options.password) {
188
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('ā”œā”€ ')}${championship_style_1.FAF_COLORS.fafGreen('Protected:')} Password required`);
189
+ }
190
+ if (options.anonymous) {
191
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('ā”œā”€ ')}${championship_style_1.FAF_COLORS.fafGreen('Anonymous:')} Author info removed`);
192
+ }
193
+ console.log(`${championship_style_1.FAF_COLORS.fafCyan('ā”œā”€ ')}${championship_style_1.FAF_COLORS.fafGreen('Sanitized:')} ${options.private ? 'No (--private)' : 'Yes'}`);
194
+ console.log();
195
+ console.log(championship_style_1.FAF_COLORS.fafCyan('šŸ“‹ Shareable Content:'));
196
+ console.log('─'.repeat(50));
197
+ if (shareResult.format === 'url') {
198
+ console.log(championship_style_1.FAF_COLORS.fafGreen(shareResult.content));
199
+ }
200
+ else {
201
+ // Show first few lines of content
202
+ const lines = shareResult.content.split('\n').slice(0, 15);
203
+ lines.forEach(line => {
204
+ console.log(championship_style_1.FAF_COLORS.fafCyan(' ') + line);
205
+ });
206
+ if (shareResult.content.split('\n').length > 15) {
207
+ console.log(championship_style_1.FAF_COLORS.fafOrange(' ... (truncated for display)'));
208
+ }
209
+ }
210
+ console.log('─'.repeat(50));
211
+ // Save to file
212
+ const outputPath = path.join(process.cwd(), shareResult.filename);
213
+ await fs.writeFile(outputPath, shareResult.content, 'utf-8');
214
+ console.log();
215
+ console.log(`${championship_style_1.FAF_COLORS.fafGreen('ā˜‘ļø Saved to:')} ${outputPath}`);
216
+ }
217
+ /**
218
+ * Calculate expiration date
219
+ */
220
+ function calculateExpiration(expires) {
221
+ const now = new Date();
222
+ const match = expires.match(/(\d+)([hdw])/);
223
+ if (!match) {
224
+ return new Date(now.getTime() + 7 * 24 * 60 * 60 * 1000).toISOString(); // Default 7 days
225
+ }
226
+ const value = parseInt(match[1]);
227
+ const unit = match[2];
228
+ let milliseconds = 0;
229
+ switch (unit) {
230
+ case 'h':
231
+ milliseconds = value * 60 * 60 * 1000;
232
+ break;
233
+ case 'd':
234
+ milliseconds = value * 24 * 60 * 60 * 1000;
235
+ break;
236
+ case 'w':
237
+ milliseconds = value * 7 * 24 * 60 * 60 * 1000;
238
+ break;
239
+ }
240
+ return new Date(now.getTime() + milliseconds).toISOString();
241
+ }
242
+ /**
243
+ * Generate unique share ID
244
+ */
245
+ function generateShareId() {
246
+ return Math.random().toString(36).substring(2, 15) + Math.random().toString(36).substring(2, 15);
247
+ }
248
+ /**
249
+ * Format bytes to human readable
250
+ */
251
+ function formatBytes(bytes) {
252
+ if (bytes === 0) {
253
+ return '0 Bytes';
254
+ }
255
+ const k = 1024;
256
+ const sizes = ['Bytes', 'KB', 'MB'];
257
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
258
+ return `${parseFloat((bytes / Math.pow(k, i)).toFixed(2))} ${sizes[i]}`;
259
+ }
260
+ //# sourceMappingURL=share.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"share.js","sourceRoot":"","sources":["../../src/commands/share.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * šŸŽļø faf show - Championship Score Card Display
3
+ * Shows FAF project score card with clean markdown output
4
+ */
5
+ interface ShowOptions {
6
+ raw?: boolean;
7
+ }
8
+ export declare function showFafScoreCard(directory?: string, options?: ShowOptions): Promise<void>;
9
+ export {};
10
+ //# sourceMappingURL=show.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../src/commands/show.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,UAAU,WAAW;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,gBAAgB,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,iBA+HnF"}
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+ /**
3
+ * šŸŽļø faf show - Championship Score Card Display
4
+ * Shows FAF project score card with clean markdown output
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.showFafScoreCard = showFafScoreCard;
44
+ const chalk_1 = __importDefault(require("chalk"));
45
+ const fs_1 = require("fs");
46
+ const YAML = __importStar(require("yaml"));
47
+ const score_calculator_1 = require("../scoring/score-calculator");
48
+ const file_utils_1 = require("../utils/file-utils");
49
+ const color_utils_1 = require("../utils/color-utils");
50
+ async function showFafScoreCard(directory, options = {}) {
51
+ try {
52
+ const targetDir = directory || process.cwd();
53
+ // Find .faf file in directory
54
+ const fafPath = await (0, file_utils_1.findFafFile)(targetDir);
55
+ if (!fafPath) {
56
+ console.log(chalk_1.default.red("āŒ No .faf file found"));
57
+ console.log(chalk_1.default.yellow('šŸ’” Run "faf init" to create one'));
58
+ process.exit(1);
59
+ }
60
+ // Read and parse .faf file
61
+ const content = await fs_1.promises.readFile(fafPath, "utf-8");
62
+ const fafData = YAML.parse(content);
63
+ // Calculate score
64
+ const scoreResult = await (0, score_calculator_1.calculateFafScore)(fafData, fafPath);
65
+ const percentage = Math.round(scoreResult.totalScore);
66
+ // šŸ«šŸŠ CHOCOLATE ORANGE - NO WRAPPERS!
67
+ // Clean markdown output for direct display
68
+ if (options.raw) {
69
+ // Raw markdown output (for piping, etc.)
70
+ const output = `# šŸŽļø FAF Championship Score Card
71
+
72
+ ## **Project Score: ${percentage}/100**
73
+
74
+ ${percentage >= 99 ? 'šŸ **CHAMPIONSHIP STATUS ACHIEVED!**' :
75
+ percentage >= 80 ? '✨ **Excellent AI Context!**' :
76
+ percentage >= 60 ? 'šŸ‘ **Good Foundation**' :
77
+ 'āš ļø **Needs Enhancement**'}
78
+
79
+ ### Project Details
80
+ - **Name**: ${typeof fafData.project === 'object' && fafData.project?.name
81
+ ? fafData.project.name
82
+ : (typeof fafData.project === 'string' ? fafData.project : 'Unknown')}
83
+ - **Version**: ${fafData.version || '1.0.0'}
84
+ - **Stack**: ${typeof fafData.stack === 'object' && fafData.stack?.name
85
+ ? fafData.stack.name
86
+ : (typeof fafData.stack === 'string' ? fafData.stack :
87
+ (fafData.instant_context?.tech_stack || 'Not specified'))}
88
+ ${fafData.ai_models ? `- **AI Models**: ${fafData.ai_models.join(', ')}` : ''}
89
+
90
+ ### Score Breakdown
91
+ ${Object.entries(scoreResult.sectionScores).map(([section, score]) => {
92
+ const sectionPercentage = Math.round(score.percentage);
93
+ return `- **${section}**: ${sectionPercentage}% (${score.filled}/${score.total})`;
94
+ }).join('\n')}
95
+
96
+ ${percentage < 100 ? `### Next Steps
97
+ ${scoreResult.suggestions.slice(0, 3).map((s, i) => `${i + 1}. ${s}`).join('\n')}` : ''}
98
+
99
+ ---
100
+ *šŸŽļø FAF Engine | Championship Grade Context*`;
101
+ console.log(output);
102
+ }
103
+ else {
104
+ // Formatted console output
105
+ const scoreColor = (0, color_utils_1.getScoreColor)(percentage);
106
+ const scoreEmoji = (0, color_utils_1.getScoreEmoji)(percentage);
107
+ console.log(chalk_1.default.bold.blue("\nšŸŽļø FAF Championship Score Card"));
108
+ console.log(chalk_1.default.bold.blue("================================\n"));
109
+ // Score display
110
+ console.log(scoreColor(chalk_1.default.bold(`${scoreEmoji} Project Score: ${percentage}/100`)));
111
+ // Status message
112
+ if (percentage >= 99) {
113
+ console.log(chalk_1.default.green.bold("šŸ CHAMPIONSHIP STATUS ACHIEVED!"));
114
+ }
115
+ else if (percentage >= 80) {
116
+ console.log(chalk_1.default.green("✨ Excellent AI Context!"));
117
+ }
118
+ else if (percentage >= 60) {
119
+ console.log(chalk_1.default.yellow("šŸ‘ Good Foundation"));
120
+ }
121
+ else {
122
+ console.log(chalk_1.default.red("āš ļø Needs Enhancement"));
123
+ }
124
+ // Project details
125
+ console.log(chalk_1.default.blue("\nšŸ“‹ Project Details:"));
126
+ // Handle both string and object formats for project name
127
+ const projectName = typeof fafData.project === 'object' && fafData.project?.name
128
+ ? fafData.project.name
129
+ : (typeof fafData.project === 'string' ? fafData.project : 'Unknown');
130
+ console.log(` Name: ${chalk_1.default.white(projectName)}`);
131
+ console.log(` Version: ${chalk_1.default.white(fafData.version || '1.0.0')}`);
132
+ // Handle both string and object formats for stack
133
+ const stackName = typeof fafData.stack === 'object' && fafData.stack?.name
134
+ ? fafData.stack.name
135
+ : (typeof fafData.stack === 'string' ? fafData.stack :
136
+ (fafData.instant_context?.tech_stack || 'Not specified'));
137
+ console.log(` Stack: ${chalk_1.default.white(stackName)}`);
138
+ if (fafData.ai_models) {
139
+ console.log(` AI Models: ${chalk_1.default.white(fafData.ai_models.join(', '))}`);
140
+ }
141
+ // Score breakdown
142
+ console.log(chalk_1.default.blue("\nšŸ“Š Score Breakdown:"));
143
+ Object.entries(scoreResult.sectionScores).forEach(([section, score]) => {
144
+ const sectionPercentage = Math.round(score.percentage);
145
+ const sectionColor = sectionPercentage >= 70 ? chalk_1.default.green :
146
+ sectionPercentage >= 40 ? chalk_1.default.yellow :
147
+ chalk_1.default.red;
148
+ console.log(` ${sectionColor(section)}: ${sectionPercentage}% (${score.filled}/${score.total})`);
149
+ });
150
+ // Next steps if not perfect
151
+ if (percentage < 100) {
152
+ console.log(chalk_1.default.blue("\nšŸ’” Next Steps:"));
153
+ scoreResult.suggestions.slice(0, 3).forEach((suggestion, index) => {
154
+ console.log(chalk_1.default.yellow(` ${index + 1}. ${suggestion}`));
155
+ });
156
+ }
157
+ console.log(chalk_1.default.gray("\n---"));
158
+ console.log(chalk_1.default.gray("šŸŽļø FAF Engine | Championship Grade Context"));
159
+ }
160
+ }
161
+ catch (error) {
162
+ console.log(chalk_1.default.red("šŸ’„ Show command failed:"));
163
+ console.log(chalk_1.default.red(error instanceof Error ? error.message : String(error)));
164
+ process.exit(1);
165
+ }
166
+ }
167
+ //# sourceMappingURL=show.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"show.js","sourceRoot":"","sources":["../../src/commands/show.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * šŸ“Š STACKTISTICS - Stack Discovery & Collection
3
+ * Powered by TURBO-CAT intelligence catalyst
4
+ */
5
+ export interface StackSignature {
6
+ id: string;
7
+ name: string;
8
+ signature: string;
9
+ detectedAt: Date;
10
+ projectPath: string;
11
+ frameworks: string[];
12
+ confidence: number;
13
+ }
14
+ export declare class StacktisticsEngine {
15
+ private stacksDir;
16
+ private discoveredPath;
17
+ constructor();
18
+ /**
19
+ * Ensure stacktistics directory exists
20
+ */
21
+ private ensureStacksDir;
22
+ /**
23
+ * Scan current project and discover stack
24
+ */
25
+ scanProject(projectPath?: string): Promise<StackSignature | null>;
26
+ /**
27
+ * Generate human-readable stack name
28
+ */
29
+ private generateStackName;
30
+ /**
31
+ * Add stack to personal collection
32
+ */
33
+ collectStack(stack: StackSignature): Promise<void>;
34
+ /**
35
+ * Get discovered stacks
36
+ */
37
+ getDiscoveredStacks(): Promise<StackSignature[]>;
38
+ }
39
+ /**
40
+ * List discovered stacks
41
+ */
42
+ export declare function listStacks(): Promise<void>;
43
+ /**
44
+ * Scan and discover current project stack
45
+ */
46
+ export declare function scanCurrentProject(): Promise<void>;
47
+ /**
48
+ * Export stacks for Gallery-Svelte
49
+ */
50
+ export declare function exportForGallery(): Promise<void>;
51
+ //# sourceMappingURL=stacks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stacks.d.ts","sourceRoot":"","sources":["../../src/commands/stacks.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,IAAI,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAS;;IAO/B;;OAEG;YACW,eAAe;IAQ7B;;OAEG;IACG,WAAW,CAAC,WAAW,GAAE,MAAsB,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAwBtF;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAezB;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBxD;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;CAQvD;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAoBhD;AAED;;GAEG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAwBxD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CA6BtD"}