faf-cli 2.3.3 โ 2.3.5
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.
- package/README.md +6 -4
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +5 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/chat.d.ts +1 -0
- package/dist/commands/chat.d.ts.map +1 -1
- package/dist/commands/chat.js +177 -6
- package/dist/commands/chat.js.map +1 -1
- package/dist/commands/quick.d.ts.map +1 -1
- package/dist/commands/quick.js +30 -5
- package/dist/commands/quick.js.map +1 -1
- package/dist/compiler/faf-compiler.d.ts.map +1 -1
- package/dist/compiler/faf-compiler.js +48 -2
- package/dist/compiler/faf-compiler.js.map +1 -1
- package/dist/generators/faf-generator-championship.d.ts +6 -0
- package/dist/generators/faf-generator-championship.d.ts.map +1 -1
- package/dist/generators/faf-generator-championship.js +19 -3
- package/dist/generators/faf-generator-championship.js.map +1 -1
- package/dist/tests/test-chrome-fuzzy.d.ts +5 -0
- package/dist/tests/test-chrome-fuzzy.d.ts.map +1 -0
- package/dist/tests/test-chrome-fuzzy.js +71 -0
- package/dist/tests/test-chrome-fuzzy.js.map +1 -0
- package/dist/utils/chrome-extension-confirmer.d.ts +41 -0
- package/dist/utils/chrome-extension-confirmer.d.ts.map +1 -0
- package/dist/utils/chrome-extension-confirmer.js +188 -0
- package/dist/utils/chrome-extension-confirmer.js.map +1 -0
- package/dist/utils/chrome-extension-detector.d.ts +74 -0
- package/dist/utils/chrome-extension-detector.d.ts.map +1 -0
- package/dist/utils/chrome-extension-detector.js +268 -0
- package/dist/utils/chrome-extension-detector.js.map +1 -0
- package/dist/utils/fab-formats-engine.d.ts.map +1 -1
- package/dist/utils/fab-formats-engine.js +3 -0
- package/dist/utils/fab-formats-engine.js.map +1 -1
- package/dist/utils/turbo-cat-knowledge.d.ts.map +1 -1
- package/dist/utils/turbo-cat-knowledge.js +16 -0
- package/dist/utils/turbo-cat-knowledge.js.map +1 -1
- package/dist/utils/universal-fuzzy-detector.d.ts +64 -0
- package/dist/utils/universal-fuzzy-detector.d.ts.map +1 -0
- package/dist/utils/universal-fuzzy-detector.js +381 -0
- package/dist/utils/universal-fuzzy-detector.js.map +1 -0
- package/dist/utils/update-checker.d.ts +15 -0
- package/dist/utils/update-checker.d.ts.map +1 -0
- package/dist/utils/update-checker.js +203 -0
- package/dist/utils/update-checker.js.map +1 -0
- package/dist/utils/yaml-generator.js +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* ๐ FAF Update Checker - Keep users informed about new versions
|
|
4
|
+
* Checks once per day, non-intrusive, respects quiet mode
|
|
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.checkForUpdates = checkForUpdates;
|
|
44
|
+
exports.forceUpdateCheck = forceUpdateCheck;
|
|
45
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
46
|
+
const fs_1 = require("fs");
|
|
47
|
+
const path = __importStar(require("path"));
|
|
48
|
+
const os = __importStar(require("os"));
|
|
49
|
+
const https_1 = __importDefault(require("https"));
|
|
50
|
+
const championship_style_1 = require("./championship-style");
|
|
51
|
+
const CACHE_FILE = path.join(os.homedir(), '.faf-cli-cache', 'update-check.json');
|
|
52
|
+
const CHECK_INTERVAL = 24 * 60 * 60 * 1000; // 24 hours
|
|
53
|
+
const REGISTRY_URL = 'https://registry.npmjs.org/faf-cli/latest';
|
|
54
|
+
/**
|
|
55
|
+
* Fetch latest version from npm registry
|
|
56
|
+
*/
|
|
57
|
+
async function fetchLatestVersion() {
|
|
58
|
+
return new Promise((resolve) => {
|
|
59
|
+
https_1.default.get(REGISTRY_URL, (res) => {
|
|
60
|
+
let data = '';
|
|
61
|
+
res.on('data', (chunk) => data += chunk);
|
|
62
|
+
res.on('end', () => {
|
|
63
|
+
try {
|
|
64
|
+
const json = JSON.parse(data);
|
|
65
|
+
resolve(json.version);
|
|
66
|
+
}
|
|
67
|
+
catch {
|
|
68
|
+
resolve(null);
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
}).on('error', () => resolve(null));
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Read update cache
|
|
76
|
+
*/
|
|
77
|
+
async function readCache() {
|
|
78
|
+
try {
|
|
79
|
+
await fs_1.promises.mkdir(path.dirname(CACHE_FILE), { recursive: true });
|
|
80
|
+
const content = await fs_1.promises.readFile(CACHE_FILE, 'utf-8');
|
|
81
|
+
return JSON.parse(content);
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Write update cache
|
|
89
|
+
*/
|
|
90
|
+
async function writeCache(cache) {
|
|
91
|
+
try {
|
|
92
|
+
await fs_1.promises.mkdir(path.dirname(CACHE_FILE), { recursive: true });
|
|
93
|
+
await fs_1.promises.writeFile(CACHE_FILE, JSON.stringify(cache, null, 2));
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
// Silent fail - not critical
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Compare semantic versions
|
|
101
|
+
*/
|
|
102
|
+
function isNewerVersion(latest, current) {
|
|
103
|
+
const parseVersion = (v) => {
|
|
104
|
+
const parts = v.replace(/^v/, '').split('.').map(Number);
|
|
105
|
+
return {
|
|
106
|
+
major: parts[0] || 0,
|
|
107
|
+
minor: parts[1] || 0,
|
|
108
|
+
patch: parts[2] || 0
|
|
109
|
+
};
|
|
110
|
+
};
|
|
111
|
+
const latestVer = parseVersion(latest);
|
|
112
|
+
const currentVer = parseVersion(current);
|
|
113
|
+
if (latestVer.major > currentVer.major)
|
|
114
|
+
return true;
|
|
115
|
+
if (latestVer.major < currentVer.major)
|
|
116
|
+
return false;
|
|
117
|
+
if (latestVer.minor > currentVer.minor)
|
|
118
|
+
return true;
|
|
119
|
+
if (latestVer.minor < currentVer.minor)
|
|
120
|
+
return false;
|
|
121
|
+
return latestVer.patch > currentVer.patch;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Check for updates (respects quiet mode)
|
|
125
|
+
*/
|
|
126
|
+
async function checkForUpdates(options) {
|
|
127
|
+
// Don't check in quiet mode
|
|
128
|
+
if (options?.quiet)
|
|
129
|
+
return;
|
|
130
|
+
// Don't check in CI/CD environments
|
|
131
|
+
if (process.env.CI || process.env.CONTINUOUS_INTEGRATION)
|
|
132
|
+
return;
|
|
133
|
+
try {
|
|
134
|
+
const packageJson = require('../../package.json');
|
|
135
|
+
const currentVersion = packageJson.version;
|
|
136
|
+
// Check cache
|
|
137
|
+
const cache = await readCache();
|
|
138
|
+
const now = Date.now();
|
|
139
|
+
// Skip if checked recently
|
|
140
|
+
if (cache && (now - cache.lastCheck) < CHECK_INTERVAL) {
|
|
141
|
+
// But still show if update available and not shown yet
|
|
142
|
+
if (cache.latestVersion &&
|
|
143
|
+
cache.currentVersion === currentVersion &&
|
|
144
|
+
isNewerVersion(cache.latestVersion, currentVersion)) {
|
|
145
|
+
showUpdateMessage(cache.latestVersion, currentVersion);
|
|
146
|
+
}
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
// Fetch latest version
|
|
150
|
+
const latestVersion = await fetchLatestVersion();
|
|
151
|
+
if (!latestVersion)
|
|
152
|
+
return;
|
|
153
|
+
// Update cache
|
|
154
|
+
await writeCache({
|
|
155
|
+
lastCheck: now,
|
|
156
|
+
latestVersion,
|
|
157
|
+
currentVersion
|
|
158
|
+
});
|
|
159
|
+
// Show update if available
|
|
160
|
+
if (isNewerVersion(latestVersion, currentVersion)) {
|
|
161
|
+
showUpdateMessage(latestVersion, currentVersion);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
catch {
|
|
165
|
+
// Silent fail - update check is not critical
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Show update message
|
|
170
|
+
*/
|
|
171
|
+
function showUpdateMessage(latest, current) {
|
|
172
|
+
console.log();
|
|
173
|
+
console.log(championship_style_1.FAF_COLORS.fafOrange('โ'.repeat(50)));
|
|
174
|
+
console.log(championship_style_1.FAF_COLORS.fafCyan(` ๐ FAF Update Available!`));
|
|
175
|
+
console.log(chalk_1.default.gray(` Current: v${current}`));
|
|
176
|
+
console.log(championship_style_1.FAF_COLORS.fafGreen(` Latest: v${latest}`));
|
|
177
|
+
console.log();
|
|
178
|
+
console.log(chalk_1.default.white(` Update with:`));
|
|
179
|
+
console.log(championship_style_1.FAF_COLORS.fafCyan(` npm update -g faf-cli`));
|
|
180
|
+
console.log();
|
|
181
|
+
console.log(chalk_1.default.gray(` What's new: https://github.com/faf-cli/releases`));
|
|
182
|
+
console.log(championship_style_1.FAF_COLORS.fafOrange('โ'.repeat(50)));
|
|
183
|
+
console.log();
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Force check (for testing or manual trigger)
|
|
187
|
+
*/
|
|
188
|
+
async function forceUpdateCheck() {
|
|
189
|
+
const packageJson = require('../../package.json');
|
|
190
|
+
const currentVersion = packageJson.version;
|
|
191
|
+
const latestVersion = await fetchLatestVersion();
|
|
192
|
+
if (!latestVersion) {
|
|
193
|
+
console.log(chalk_1.default.red('Failed to check for updates'));
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
if (isNewerVersion(latestVersion, currentVersion)) {
|
|
197
|
+
showUpdateMessage(latestVersion, currentVersion);
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
console.log(championship_style_1.FAF_COLORS.fafGreen(`โ
You're on the latest version (v${currentVersion})`));
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=update-checker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-checker.js","sourceRoot":"","sources":["../../src/utils/update-checker.ts"],"names":[],"mappings":"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"}
|
|
@@ -199,7 +199,7 @@ function generateFafContent(projectData) {
|
|
|
199
199
|
}
|
|
200
200
|
const fafData = {
|
|
201
201
|
// FAF schema version (not CLI version)
|
|
202
|
-
faf_version: '2.
|
|
202
|
+
faf_version: '2.3.5',
|
|
203
203
|
// ๐ค AI-FIRST SCORING SYSTEM - Live date instead of versions
|
|
204
204
|
ai_scoring_system: '2025-08-30', // MY scoring logic live date (COUNT ONCE architecture)
|
|
205
205
|
ai_score: `${projectData.fafScore}%`, // MY evaluation
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "faf-cli",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.5",
|
|
4
4
|
"description": "๐ .faf - The JPEG for AIโข - Universal AI-context for any AI, human or team",
|
|
5
5
|
"icon": "https://faf.one/orange-smiley.svg",
|
|
6
6
|
"logo": "https://faf.one/orange-smiley.svg",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"version:update": "node scripts/update-version.js",
|
|
48
48
|
"version:check": "node scripts/check-version.js",
|
|
49
49
|
"precommit": "npm run version:check",
|
|
50
|
-
"postinstall": "echo '\n๐งกโก๏ธ FAF CLI v2.
|
|
50
|
+
"postinstall": "echo '\n๐งกโก๏ธ FAF CLI v2.3.5 - FREE for all Developers!\nRun \"faf --help\" to get started\n'"
|
|
51
51
|
},
|
|
52
52
|
"keywords": [
|
|
53
53
|
"faf",
|