@felan-ai/felan 0.12.10 → 0.13.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.
- package/README.md +82 -345
- package/dist/cli-main.d.ts +2 -1
- package/dist/cli-main.d.ts.map +1 -1
- package/dist/cli-main.js +17 -4
- package/dist/cli-main.js.map +1 -1
- package/dist/extensions.d.ts +5 -2
- package/dist/extensions.d.ts.map +1 -1
- package/dist/extensions.js +7 -1
- package/dist/extensions.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +4 -2
- package/dist/runtime.js.map +1 -1
- package/dist/settings.d.ts +3 -0
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +5 -0
- package/dist/settings.js.map +1 -1
- package/dist/subagents/host.d.ts +3 -0
- package/dist/subagents/host.d.ts.map +1 -1
- package/dist/subagents/host.js +4 -1
- package/dist/subagents/host.js.map +1 -1
- package/dist/update.d.ts +14 -0
- package/dist/update.d.ts.map +1 -0
- package/dist/update.js +152 -0
- package/dist/update.js.map +1 -0
- package/package.json +7 -6
package/dist/update.js
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { execFile } from 'node:child_process';
|
|
2
|
+
import { existsSync, lstatSync, readFileSync, realpathSync } from 'node:fs';
|
|
3
|
+
import { basename, delimiter, dirname, join, resolve } from 'node:path';
|
|
4
|
+
import { fileURLToPath } from 'node:url';
|
|
5
|
+
import { FELAN_VERSION } from './version.js';
|
|
6
|
+
const PACKAGE_NAME = '@felan-ai/felan';
|
|
7
|
+
const PACKAGE_DIRECTORY = ['@felan-ai', 'felan'];
|
|
8
|
+
export async function runFelanUpdate(options = {}) {
|
|
9
|
+
const writeOutput = options.writeOutput ?? ((line) => console.log(line));
|
|
10
|
+
const writeError = options.writeError ?? ((line) => console.error(line));
|
|
11
|
+
const packageDirectory = options.packageDirectory ?? dirname(dirname(fileURLToPath(import.meta.url)));
|
|
12
|
+
const currentVersion = options.currentVersion ?? FELAN_VERSION;
|
|
13
|
+
const runNpm = options.runNpm ?? runNpmCommand;
|
|
14
|
+
const globalRootResult = await runNpm(['root', '--global'], packageDirectory);
|
|
15
|
+
if (globalRootResult.status !== 0) {
|
|
16
|
+
writeError(`Could not find npm's global installation: ${commandError(globalRootResult)}`);
|
|
17
|
+
return 1;
|
|
18
|
+
}
|
|
19
|
+
const globalRoot = globalRootResult.stdout.trim();
|
|
20
|
+
const expectedPackageDirectory = join(globalRoot, ...PACKAGE_DIRECTORY);
|
|
21
|
+
if (!globalRoot || !samePath(packageDirectory, expectedPackageDirectory) || isSymbolicLink(expectedPackageDirectory)) {
|
|
22
|
+
writeError('Felan update only supports a verified global npm installation. '
|
|
23
|
+
+ 'Run `npm install --global @felan-ai/felan` to update this installation manually.');
|
|
24
|
+
return 1;
|
|
25
|
+
}
|
|
26
|
+
const packageManifest = readPackageManifest(packageDirectory);
|
|
27
|
+
if (!packageManifest || packageManifest.name !== PACKAGE_NAME || packageManifest.version !== currentVersion) {
|
|
28
|
+
writeError('The running Felan package could not be verified. Update it manually with npm.');
|
|
29
|
+
return 1;
|
|
30
|
+
}
|
|
31
|
+
const latestResult = await runNpm(['view', `${PACKAGE_NAME}@latest`, 'version'], packageDirectory);
|
|
32
|
+
if (latestResult.status !== 0) {
|
|
33
|
+
writeError(`Could not check for a newer Felan release: ${commandError(latestResult)}`);
|
|
34
|
+
return 1;
|
|
35
|
+
}
|
|
36
|
+
const latestVersion = latestResult.stdout.trim();
|
|
37
|
+
if (!isStableVersion(latestVersion) || !isStableVersion(currentVersion)) {
|
|
38
|
+
writeError('npm returned an invalid stable Felan version. Update Felan manually.');
|
|
39
|
+
return 1;
|
|
40
|
+
}
|
|
41
|
+
const comparison = compareVersions(latestVersion, currentVersion);
|
|
42
|
+
if (comparison <= 0) {
|
|
43
|
+
writeOutput(`Felan ${currentVersion} is already up to date.`);
|
|
44
|
+
return 0;
|
|
45
|
+
}
|
|
46
|
+
const installResult = await runNpm(['install', '--global', `${PACKAGE_NAME}@${latestVersion}`], packageDirectory);
|
|
47
|
+
if (installResult.status !== 0) {
|
|
48
|
+
writeError(`Felan update failed: ${commandError(installResult)}`);
|
|
49
|
+
return 1;
|
|
50
|
+
}
|
|
51
|
+
const installedManifest = readPackageManifest(packageDirectory);
|
|
52
|
+
if (installedManifest?.name !== PACKAGE_NAME || installedManifest.version !== latestVersion) {
|
|
53
|
+
writeError(`Felan update could not verify version ${latestVersion}. Update Felan manually.`);
|
|
54
|
+
return 1;
|
|
55
|
+
}
|
|
56
|
+
writeOutput(`Updated Felan from ${currentVersion} to ${latestVersion}. Restart Felan to use the new version.`);
|
|
57
|
+
return 0;
|
|
58
|
+
}
|
|
59
|
+
async function runNpmCommand(args, cwd) {
|
|
60
|
+
const npmCommand = resolveNpmCommand();
|
|
61
|
+
if (!npmCommand) {
|
|
62
|
+
return { status: 1, stdout: '', stderr: 'npm was not found' };
|
|
63
|
+
}
|
|
64
|
+
return new Promise((resolveResult) => {
|
|
65
|
+
execFile(npmCommand.command, [...npmCommand.arguments, ...args], {
|
|
66
|
+
cwd,
|
|
67
|
+
encoding: 'utf8',
|
|
68
|
+
windowsHide: true,
|
|
69
|
+
}, (error, stdout, stderr) => {
|
|
70
|
+
resolveResult({
|
|
71
|
+
status: error ? (typeof error.code === 'number' ? error.code : 1) : 0,
|
|
72
|
+
stdout,
|
|
73
|
+
stderr,
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
function resolveNpmCommand() {
|
|
79
|
+
const npmCliCandidates = [
|
|
80
|
+
join(dirname(process.execPath), 'node_modules', 'npm', 'bin', 'npm-cli.js'),
|
|
81
|
+
join(dirname(process.execPath), '..', 'lib', 'node_modules', 'npm', 'bin', 'npm-cli.js'),
|
|
82
|
+
join(dirname(process.execPath), '..', 'share', 'nodejs', 'npm', 'bin', 'npm-cli.js'),
|
|
83
|
+
];
|
|
84
|
+
for (const candidate of npmCliCandidates) {
|
|
85
|
+
if (candidate && basename(candidate).toLowerCase() === 'npm-cli.js' && existsSync(candidate)) {
|
|
86
|
+
return { command: process.execPath, arguments: [candidate] };
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
for (const directory of (process.env.PATH ?? '').split(delimiter)) {
|
|
90
|
+
if (!directory || directory.toLowerCase().includes('node_modules'))
|
|
91
|
+
continue;
|
|
92
|
+
const executable = join(directory, process.platform === 'win32' ? 'npm.cmd' : 'npm');
|
|
93
|
+
if (!existsSync(executable))
|
|
94
|
+
continue;
|
|
95
|
+
if (process.platform === 'win32') {
|
|
96
|
+
const adjacentCli = join(directory, 'node_modules', 'npm', 'bin', 'npm-cli.js');
|
|
97
|
+
if (existsSync(adjacentCli))
|
|
98
|
+
return { command: process.execPath, arguments: [adjacentCli] };
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
return { command: executable, arguments: [] };
|
|
102
|
+
}
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
function readPackageManifest(packageDirectory) {
|
|
106
|
+
try {
|
|
107
|
+
return JSON.parse(readFileSync(join(packageDirectory, 'package.json'), 'utf8'));
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
return undefined;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
function isSymbolicLink(path) {
|
|
114
|
+
try {
|
|
115
|
+
return lstatSync(path).isSymbolicLink();
|
|
116
|
+
}
|
|
117
|
+
catch {
|
|
118
|
+
return false;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
function samePath(left, right) {
|
|
122
|
+
const canonicalLeft = canonicalPath(left);
|
|
123
|
+
const canonicalRight = canonicalPath(right);
|
|
124
|
+
const normalizedLeft = process.platform === 'win32' ? canonicalLeft.toLowerCase() : canonicalLeft;
|
|
125
|
+
const normalizedRight = process.platform === 'win32' ? canonicalRight.toLowerCase() : canonicalRight;
|
|
126
|
+
return normalizedLeft === normalizedRight;
|
|
127
|
+
}
|
|
128
|
+
function canonicalPath(path) {
|
|
129
|
+
const resolved = resolve(path);
|
|
130
|
+
try {
|
|
131
|
+
return realpathSync(resolved);
|
|
132
|
+
}
|
|
133
|
+
catch {
|
|
134
|
+
return resolved;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
function isStableVersion(version) {
|
|
138
|
+
return /^(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)$/u.test(version);
|
|
139
|
+
}
|
|
140
|
+
function compareVersions(left, right) {
|
|
141
|
+
const leftParts = left.split('.').map(Number);
|
|
142
|
+
const rightParts = right.split('.').map(Number);
|
|
143
|
+
for (let index = 0; index < leftParts.length; index += 1) {
|
|
144
|
+
if (leftParts[index] !== rightParts[index])
|
|
145
|
+
return leftParts[index] > rightParts[index] ? 1 : -1;
|
|
146
|
+
}
|
|
147
|
+
return 0;
|
|
148
|
+
}
|
|
149
|
+
function commandError(result) {
|
|
150
|
+
return result.stderr.trim() || result.stdout.trim() || `npm exited with status ${result.status}`;
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@felan-ai/felan",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"description": "Local Felan terminal agent",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -36,19 +36,20 @@
|
|
|
36
36
|
"proper-lockfile": "4.1.2",
|
|
37
37
|
"@felan-ai/agent-core": "0.4.9",
|
|
38
38
|
"@felan-ai/ext-ask-user": "0.1.3",
|
|
39
|
-
"@felan-ai/ext-background-bash": "0.3.6",
|
|
40
39
|
"@felan-ai/ext-browser": "0.1.0",
|
|
40
|
+
"@felan-ai/ext-background-bash": "0.3.6",
|
|
41
41
|
"@felan-ai/ext-mcp": "0.1.2",
|
|
42
42
|
"@felan-ai/ext-codex": "0.1.5",
|
|
43
43
|
"@felan-ai/ext-subagents": "0.4.0",
|
|
44
44
|
"@felan-ai/ext-context": "0.3.1",
|
|
45
|
-
"@felan-ai/ext-
|
|
46
|
-
"@felan-ai/ext-memory": "0.1.0",
|
|
45
|
+
"@felan-ai/ext-output-style": "0.1.0",
|
|
47
46
|
"@felan-ai/ext-markitdown": "0.1.0",
|
|
47
|
+
"@felan-ai/ext-memory": "0.1.0",
|
|
48
|
+
"@felan-ai/ext-tasks": "0.1.3",
|
|
48
49
|
"@felan-ai/ext-powerline": "0.4.2",
|
|
49
50
|
"@felan-ai/ext-prewalk": "0.3.3",
|
|
50
|
-
"@felan-ai/ext-
|
|
51
|
-
"@felan-ai/ext-
|
|
51
|
+
"@felan-ai/ext-rtk-optimizer": "0.1.1",
|
|
52
|
+
"@felan-ai/ext-web-access": "0.2.0"
|
|
52
53
|
},
|
|
53
54
|
"devDependencies": {
|
|
54
55
|
"@types/proper-lockfile": "4.1.4"
|