faf-cli 3.1.6 โ†’ 3.2.1

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 (51) hide show
  1. package/README.md +57 -1
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +92 -14
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/check.d.ts +19 -3
  6. package/dist/commands/check.d.ts.map +1 -1
  7. package/dist/commands/check.js +280 -37
  8. package/dist/commands/check.js.map +1 -1
  9. package/dist/commands/git.d.ts.map +1 -1
  10. package/dist/commands/git.js +7 -4
  11. package/dist/commands/git.js.map +1 -1
  12. package/dist/commands/human.d.ts +19 -0
  13. package/dist/commands/human.d.ts.map +1 -0
  14. package/dist/commands/human.js +205 -0
  15. package/dist/commands/human.js.map +1 -0
  16. package/dist/commands/readme.d.ts +16 -0
  17. package/dist/commands/readme.d.ts.map +1 -0
  18. package/dist/commands/readme.js +453 -0
  19. package/dist/commands/readme.js.map +1 -0
  20. package/dist/commands/version.d.ts +1 -1
  21. package/dist/commands/version.js +2 -2
  22. package/dist/compiler/faf-compiler.d.ts.map +1 -1
  23. package/dist/compiler/faf-compiler.js +43 -0
  24. package/dist/compiler/faf-compiler.js.map +1 -1
  25. package/dist/engines/fab-formats-processor.d.ts +8 -0
  26. package/dist/engines/fab-formats-processor.d.ts.map +1 -1
  27. package/dist/engines/fab-formats-processor.js +78 -1
  28. package/dist/engines/fab-formats-processor.js.map +1 -1
  29. package/dist/framework-detector.d.ts.map +1 -1
  30. package/dist/framework-detector.js +7 -0
  31. package/dist/framework-detector.js.map +1 -1
  32. package/dist/github/github-extractor.d.ts +12 -6
  33. package/dist/github/github-extractor.d.ts.map +1 -1
  34. package/dist/github/github-extractor.js +339 -84
  35. package/dist/github/github-extractor.js.map +1 -1
  36. package/dist/utils/fab-formats-engine.d.ts +7 -0
  37. package/dist/utils/fab-formats-engine.d.ts.map +1 -1
  38. package/dist/utils/fab-formats-engine.js +23 -1
  39. package/dist/utils/fab-formats-engine.js.map +1 -1
  40. package/dist/utils/file-utils.d.ts.map +1 -1
  41. package/dist/utils/file-utils.js +20 -1
  42. package/dist/utils/file-utils.js.map +1 -1
  43. package/dist/utils/turbo-cat-knowledge.d.ts +2 -0
  44. package/dist/utils/turbo-cat-knowledge.d.ts.map +1 -1
  45. package/dist/utils/turbo-cat-knowledge.js +15 -0
  46. package/dist/utils/turbo-cat-knowledge.js.map +1 -1
  47. package/dist/utils/turbo-cat.d.ts +7 -0
  48. package/dist/utils/turbo-cat.d.ts.map +1 -1
  49. package/dist/utils/turbo-cat.js +30 -2
  50. package/dist/utils/turbo-cat.js.map +1 -1
  51. package/package.json +1 -1
@@ -0,0 +1,205 @@
1
+ "use strict";
2
+ /**
3
+ * ๐Ÿงก faf human - Interactive Human Context Collection
4
+ * Asks for one W at a time, simple and focused
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.humanCommand = humanCommand;
41
+ exports.humanAddCommand = humanAddCommand;
42
+ const colors_1 = require("../fix-once/colors");
43
+ const fs_1 = require("fs");
44
+ const yaml_1 = require("../fix-once/yaml");
45
+ const championship_style_1 = require("../utils/championship-style");
46
+ const file_utils_1 = require("../utils/file-utils");
47
+ const readline = __importStar(require("readline"));
48
+ const W_FIELDS = [
49
+ { key: 'who', question: 'WHO is this for?', example: 'e.g., "Developers using AI assistants"' },
50
+ { key: 'what', question: 'WHAT does it do?', example: 'e.g., "CLI tool for project context"' },
51
+ { key: 'why', question: 'WHY does it exist?', example: 'e.g., "AI needs persistent context"' },
52
+ { key: 'where', question: 'WHERE does it run?', example: 'e.g., "npm, browser, edge"' },
53
+ { key: 'when', question: 'WHEN was it made/status?', example: 'e.g., "v1.0, production ready"' },
54
+ { key: 'how', question: 'HOW do you use it?', example: 'e.g., "npm install -g faf-cli"' },
55
+ ];
56
+ /**
57
+ * Prompt for a single input
58
+ */
59
+ async function askQuestion(rl, prompt) {
60
+ return new Promise((resolve) => {
61
+ rl.question(prompt, (answer) => {
62
+ resolve(answer.trim());
63
+ });
64
+ });
65
+ }
66
+ /**
67
+ * Main human command
68
+ */
69
+ async function humanCommand(projectPath, options = {}) {
70
+ const projectRoot = projectPath || process.cwd();
71
+ try {
72
+ // Find .faf file
73
+ const fafPath = await (0, file_utils_1.findFafFile)(projectRoot);
74
+ if (!fafPath) {
75
+ console.log();
76
+ console.log(colors_1.chalk.yellow(`${championship_style_1.FAF_ICONS.robot} No .faf file found. Run 'faf init' first.`));
77
+ return;
78
+ }
79
+ // Read existing .faf
80
+ const fafContent = await fs_1.promises.readFile(fafPath, 'utf-8');
81
+ const fafData = (0, yaml_1.parse)(fafContent) || {};
82
+ if (!fafData.human_context) {
83
+ fafData.human_context = {};
84
+ }
85
+ // === NON-INTERACTIVE MODE: --set field "value" ===
86
+ if (options.set) {
87
+ const validFields = W_FIELDS.map(f => f.key);
88
+ const field = options.set.toLowerCase();
89
+ if (!validFields.includes(field)) {
90
+ console.log();
91
+ console.log(colors_1.chalk.red(`Unknown field: ${field}`));
92
+ console.log(colors_1.chalk.gray(`Valid fields: ${validFields.join(', ')}`));
93
+ return;
94
+ }
95
+ // The value comes as the next argument (projectPath in this case)
96
+ // We need to handle this differently - the value is passed separately
97
+ console.log();
98
+ console.log(colors_1.chalk.yellow(`Usage: faf human --set <field> "<value>"`));
99
+ console.log(colors_1.chalk.gray(`Example: faf human --set why "32x faster than Rust"`));
100
+ return;
101
+ }
102
+ // === INTERACTIVE MODE ===
103
+ console.log();
104
+ console.log(championship_style_1.FAF_COLORS.fafOrange(`${championship_style_1.FAF_ICONS.heart_orange} Human Context Collection`));
105
+ console.log(colors_1.chalk.gray('โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”'));
106
+ console.log(colors_1.chalk.gray(' Answer each question (Enter to skip)'));
107
+ console.log();
108
+ const rl = readline.createInterface({
109
+ input: process.stdin,
110
+ output: process.stdout
111
+ });
112
+ let updatedCount = 0;
113
+ for (const field of W_FIELDS) {
114
+ const currentValue = fafData.human_context[field.key];
115
+ const hasValue = currentValue && currentValue !== null && currentValue !== '';
116
+ // Skip if already has value and not --all flag
117
+ if (hasValue && !options.all) {
118
+ console.log(colors_1.chalk.gray(` ${field.key.toUpperCase()}: ${currentValue} (keeping)`));
119
+ continue;
120
+ }
121
+ // Show current value if exists
122
+ if (hasValue) {
123
+ console.log(colors_1.chalk.gray(` Current: ${currentValue}`));
124
+ }
125
+ // Ask the question
126
+ console.log(championship_style_1.FAF_COLORS.fafCyan(` ${field.question}`));
127
+ console.log(colors_1.chalk.gray(` ${field.example}`));
128
+ const answer = await askQuestion(rl, championship_style_1.FAF_COLORS.fafOrange(' > '));
129
+ if (answer) {
130
+ fafData.human_context[field.key] = answer;
131
+ updatedCount++;
132
+ console.log(colors_1.chalk.green(` โ˜‘๏ธ ${field.key} updated`));
133
+ }
134
+ else if (hasValue) {
135
+ console.log(colors_1.chalk.gray(` (kept existing)`));
136
+ }
137
+ else {
138
+ console.log(colors_1.chalk.gray(` (skipped)`));
139
+ }
140
+ console.log();
141
+ }
142
+ rl.close();
143
+ // Save if any updates
144
+ if (updatedCount > 0) {
145
+ await fs_1.promises.writeFile(fafPath, (0, yaml_1.stringify)(fafData), 'utf-8');
146
+ console.log(colors_1.chalk.gray('โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”'));
147
+ console.log(championship_style_1.FAF_COLORS.fafGreen(`${championship_style_1.FAF_ICONS.heart_orange} Updated ${updatedCount} field${updatedCount > 1 ? 's' : ''}`));
148
+ console.log(colors_1.chalk.gray(' Run: faf score to see your new score'));
149
+ }
150
+ else {
151
+ console.log(colors_1.chalk.gray('โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”'));
152
+ console.log(colors_1.chalk.gray(' No changes made'));
153
+ }
154
+ console.log();
155
+ }
156
+ catch (error) {
157
+ console.log(colors_1.chalk.red(`\n${championship_style_1.FAF_ICONS.fire} Human context collection failed:`));
158
+ console.log(colors_1.chalk.red(error instanceof Error ? error.message : String(error)));
159
+ process.exit(1);
160
+ }
161
+ }
162
+ /**
163
+ * Add a single human_context field (non-interactive)
164
+ */
165
+ async function humanAddCommand(field, value, projectPath) {
166
+ const projectRoot = projectPath || process.cwd();
167
+ const validFields = W_FIELDS.map(f => f.key);
168
+ const fieldLower = field.toLowerCase();
169
+ if (!validFields.includes(fieldLower)) {
170
+ console.log();
171
+ console.log(colors_1.chalk.red(`Unknown field: ${field}`));
172
+ console.log(colors_1.chalk.gray(`Valid fields: ${validFields.join(', ')}`));
173
+ return;
174
+ }
175
+ try {
176
+ const fafPath = await (0, file_utils_1.findFafFile)(projectRoot);
177
+ if (!fafPath) {
178
+ console.log();
179
+ console.log(colors_1.chalk.yellow(`${championship_style_1.FAF_ICONS.robot} No .faf file found. Run 'faf init' first.`));
180
+ return;
181
+ }
182
+ const fafContent = await fs_1.promises.readFile(fafPath, 'utf-8');
183
+ const fafData = (0, yaml_1.parse)(fafContent) || {};
184
+ if (!fafData.human_context) {
185
+ fafData.human_context = {};
186
+ }
187
+ const oldValue = fafData.human_context[fieldLower];
188
+ fafData.human_context[fieldLower] = value;
189
+ await fs_1.promises.writeFile(fafPath, (0, yaml_1.stringify)(fafData), 'utf-8');
190
+ console.log();
191
+ console.log(championship_style_1.FAF_COLORS.fafOrange(`${championship_style_1.FAF_ICONS.heart_orange} Human Context Updated`));
192
+ console.log(colors_1.chalk.gray('โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”'));
193
+ console.log(colors_1.chalk.green(` โ˜‘๏ธ ${fieldLower.toUpperCase()}: ${value}`));
194
+ if (oldValue) {
195
+ console.log(colors_1.chalk.gray(` (was: ${oldValue})`));
196
+ }
197
+ console.log();
198
+ }
199
+ catch (error) {
200
+ console.log(colors_1.chalk.red(`\nFailed to set ${field}:`));
201
+ console.log(colors_1.chalk.red(error instanceof Error ? error.message : String(error)));
202
+ process.exit(1);
203
+ }
204
+ }
205
+ //# sourceMappingURL=human.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"human.js","sourceRoot":"","sources":["../../src/commands/human.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * ๐Ÿ“– faf readme - Extract 6 Ws from README intelligently
3
+ * Reads README.md and fills human_context slots smartly
4
+ */
5
+ interface ReadmeOptions {
6
+ apply?: boolean;
7
+ force?: boolean;
8
+ file?: string;
9
+ quiet?: boolean;
10
+ }
11
+ /**
12
+ * Main readme command
13
+ */
14
+ export declare function readmeCommand(projectPath?: string, options?: ReadmeOptions): Promise<void>;
15
+ export {};
16
+ //# sourceMappingURL=readme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readme.d.ts","sourceRoot":"","sources":["../../src/commands/readme.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,UAAU,aAAa;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAyUD;;GAEG;AACH,wBAAsB,aAAa,CACjC,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,GAAE,aAAkB,iBA4J5B"}