@aalis/plugin-package-manager 0.1.0 → 0.1.2
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/LICENSE +21 -0
- package/dist/index.d.ts +8 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +53 -49
- package/dist/index.js.map +1 -1
- package/package.json +5 -6
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Ace Nyan <ace@acenyan.com>
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { Context } from '@aalis/core';
|
|
2
2
|
import { type ProcessService } from '@aalis/plugin-process-api';
|
|
3
|
-
import { type StorageService } from '@aalis/plugin-storage-api';
|
|
4
3
|
export declare const name = "@aalis/plugin-package-manager";
|
|
5
4
|
export declare const displayName = "\u5305\u7BA1\u7406\u5668";
|
|
6
5
|
export declare const subsystem = "system";
|
|
@@ -45,18 +44,22 @@ export declare function parsePackInfo(jsonOut: string): {
|
|
|
45
44
|
/** install/uninstall 的显式依赖(从 ctx/网关解耦,便于集成测试) */
|
|
46
45
|
export interface PackageManagerDeps {
|
|
47
46
|
proc: ProcessService;
|
|
48
|
-
storage: Pick<StorageService, 'stat' | 'delete'>;
|
|
49
47
|
log: {
|
|
50
48
|
info(msg: string): void;
|
|
51
49
|
error(msg: string): void;
|
|
52
50
|
};
|
|
53
|
-
|
|
54
|
-
|
|
51
|
+
/** 真实插件目录绝对路径(= `<cwd>/packages`,与 FS 加载器一致) */
|
|
52
|
+
packagesDir(): string;
|
|
55
53
|
rescanPlugins(): Promise<string[]>;
|
|
56
|
-
|
|
54
|
+
/** 彻底卸载插件(dispose + 从注册表移除)。plugins 服务缺席则 no-op。 */
|
|
55
|
+
unloadPlugin(name: string): Promise<void>;
|
|
56
|
+
/** 卸载后清理残留配置(删配置块 + 解除禁用标记 + 持久化)。可选:缺省则不清理。 */
|
|
57
|
+
cleanupConfig?(name: string): void;
|
|
57
58
|
}
|
|
58
59
|
/**
|
|
59
60
|
* 包管理核心:install/uninstall 的纯依赖实现(不碰 ctx/网关,可单测)。
|
|
61
|
+
* 所有文件操作走 process 网关(子进程:npm/tar/mkdir/rm/test),目标是真实
|
|
62
|
+
* `<cwd>/packages`——不经 storage 沙盒(沙盒根是 workspace,够不到 packages)。
|
|
60
63
|
* ctx 组装层见 createService。
|
|
61
64
|
*/
|
|
62
65
|
export declare function createPackageManager(deps: PackageManagerDeps): PackageManagerService;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,OAAO,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAyC,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,OAAO,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAyC,KAAK,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAIvG,eAAO,MAAM,IAAI,kCAAkC,CAAC;AACpD,eAAO,MAAM,WAAW,6BAAS,CAAC;AAClC,eAAO,MAAM,SAAS,WAAW,CAAC;AAClC,eAAO,MAAM,QAAQ,UAAsB,CAAC;AAC5C,eAAO,MAAM,MAAM;;CAElB,CAAC;AAIF;;;;;;;GAOG;AACH,MAAM,WAAW,qBAAqB;IACpC,8CAA8C;IAC9C,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnE,4BAA4B;IAC5B,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC1E;AAED,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,oBAAoB;QAC5B,iBAAiB,EAAE,SAAS,GAAG,WAAW,CAAC;KAC5C;CACF;AAID;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAW7F;AA6DD,iDAAiD;AACjD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,cAAc,CAAC;IACrB,GAAG,EAAE;QAAE,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAC3D,gDAAgD;IAChD,WAAW,IAAI,MAAM,CAAC;IACtB,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACnC,oDAAoD;IACpD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,gDAAgD;IAChD,aAAa,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,kBAAkB,GAAG,qBAAqB,CAgFpF;AAED,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAKzE;AAGD,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,cAAc;QACtB,iBAAiB,EAAE,qBAAqB,CAAC;KAC1C;CACF"}
|
package/dist/index.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { createProcessGateway } from '@aalis/plugin-process-api';
|
|
2
|
-
import { createStorageGateway } from '@aalis/plugin-storage-api';
|
|
3
2
|
// ===== 插件元数据 =====
|
|
4
3
|
export const name = '@aalis/plugin-package-manager';
|
|
5
4
|
export const displayName = '包管理器';
|
|
6
5
|
export const subsystem = 'system';
|
|
7
6
|
export const provides = ['package-manager'];
|
|
8
7
|
export const inject = {
|
|
9
|
-
required: ['process'
|
|
8
|
+
required: ['process'],
|
|
10
9
|
};
|
|
11
10
|
// ===== 实现 =====
|
|
12
11
|
/**
|
|
@@ -43,7 +42,6 @@ async function execProc(proc, cmd, args, cwd) {
|
|
|
43
42
|
function createService(ctx, config) {
|
|
44
43
|
const log = ctx.logger;
|
|
45
44
|
const proc = createProcessGateway(ctx);
|
|
46
|
-
const storage = createStorageGateway(ctx);
|
|
47
45
|
function getApp() {
|
|
48
46
|
const app = ctx.getService('app');
|
|
49
47
|
if (!app)
|
|
@@ -51,51 +49,54 @@ function createService(ctx, config) {
|
|
|
51
49
|
return app;
|
|
52
50
|
}
|
|
53
51
|
/**
|
|
54
|
-
*
|
|
52
|
+
* 真实插件目录的绝对路径。
|
|
55
53
|
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
54
|
+
* 必须与 core 的 createFsPluginLoader 一致——后者扫描 `<cwd>/packages`。
|
|
55
|
+
* 关键:**不能**走 storage 的 `workspace:` 根(那是 agent 沙盒 `<cwd>/workspace`,
|
|
56
|
+
* 与插件目录 `<cwd>/packages` 不是同一处),否则装到/找错地方(历史 bug:
|
|
57
|
+
* 卸载报"目录不存在")。可用插件配置 `packagesDir` 覆盖(相对 cwd 或绝对路径)。
|
|
58
58
|
*/
|
|
59
|
-
function
|
|
59
|
+
function packagesDir() {
|
|
60
60
|
const override = config.packagesDir;
|
|
61
|
+
const base = process.cwd();
|
|
61
62
|
if (typeof override === 'string' && override.length > 0) {
|
|
62
|
-
|
|
63
|
-
return override;
|
|
64
|
-
return `workspace:/${override.replace(/^\.?\/+/, '')}`;
|
|
63
|
+
return override.startsWith('/') ? override : `${base}/${override.replace(/^\.?\/+/, '')}`;
|
|
65
64
|
}
|
|
66
|
-
return
|
|
67
|
-
}
|
|
68
|
-
async function packagesLocal() {
|
|
69
|
-
const uri = packagesUri();
|
|
70
|
-
if (!storage.resolveLocalPath) {
|
|
71
|
-
throw new Error('storage 服务未实现 resolveLocalPath,无法执行包管理操作');
|
|
72
|
-
}
|
|
73
|
-
return storage.resolveLocalPath(uri, 'write');
|
|
65
|
+
return `${base}/packages`;
|
|
74
66
|
}
|
|
75
67
|
return createPackageManager({
|
|
76
68
|
proc,
|
|
77
|
-
storage,
|
|
78
69
|
log,
|
|
79
|
-
|
|
80
|
-
packagesLocal,
|
|
70
|
+
packagesDir,
|
|
81
71
|
rescanPlugins: () => getApp().rescanPlugins(),
|
|
82
|
-
// plugins
|
|
83
|
-
|
|
72
|
+
// 彻底卸载:dispose 上下文并从注册表移除(plugins 服务缺席则 no-op)。
|
|
73
|
+
// 区别于 disablePlugin(仅置禁用态,仍滞留在插件列表里)。
|
|
74
|
+
unloadPlugin: async (name) => {
|
|
84
75
|
const pm = ctx.getService('plugins');
|
|
85
76
|
if (pm)
|
|
86
|
-
await pm.
|
|
77
|
+
await pm.unload(name);
|
|
78
|
+
},
|
|
79
|
+
// 卸载后清残留配置:删 plugins.<name> 配置块 + 从 disabledPlugins 移除
|
|
80
|
+
// (否则重装会被"上次禁用"标记带成已禁用状态),并持久化。
|
|
81
|
+
cleanupConfig: name => {
|
|
82
|
+
ctx.config.removePluginConfig(name);
|
|
83
|
+
ctx.config.setPluginEnabled(name, true);
|
|
84
|
+
ctx.config.save();
|
|
87
85
|
},
|
|
88
86
|
});
|
|
89
87
|
}
|
|
90
88
|
/**
|
|
91
89
|
* 包管理核心:install/uninstall 的纯依赖实现(不碰 ctx/网关,可单测)。
|
|
90
|
+
* 所有文件操作走 process 网关(子进程:npm/tar/mkdir/rm/test),目标是真实
|
|
91
|
+
* `<cwd>/packages`——不经 storage 沙盒(沙盒根是 workspace,够不到 packages)。
|
|
92
92
|
* ctx 组装层见 createService。
|
|
93
93
|
*/
|
|
94
94
|
export function createPackageManager(deps) {
|
|
95
|
-
const { proc,
|
|
96
|
-
|
|
95
|
+
const { proc, log } = deps;
|
|
96
|
+
// 目录存在性:`test -d <abs>`(不存在/非目录 → exit 1 → 抛 → false)。绝对路径,cwd 无关。
|
|
97
|
+
async function dirExists(absPath) {
|
|
97
98
|
try {
|
|
98
|
-
await
|
|
99
|
+
await proc.execFile('test', ['-d', absPath], { cwd: process.cwd(), timeout: 10_000 });
|
|
99
100
|
return true;
|
|
100
101
|
}
|
|
101
102
|
catch {
|
|
@@ -104,29 +105,28 @@ export function createPackageManager(deps) {
|
|
|
104
105
|
}
|
|
105
106
|
return {
|
|
106
107
|
async install(npmPkg) {
|
|
107
|
-
const packagesDir =
|
|
108
|
+
const packagesDir = deps.packagesDir();
|
|
108
109
|
// 分离包名与可选版本:@scope/foo@1.2.3 → dirName=foo(去 scope、去版本)
|
|
109
110
|
const dirName = npmPkg.replace(/^@[^/]+\//, '').replace(/@[^@]+$/, '');
|
|
110
|
-
const targetUri = `${deps.packagesUri()}/${dirName}`;
|
|
111
111
|
const targetDir = `${packagesDir}/${dirName}`;
|
|
112
|
-
if (await dirExists(
|
|
112
|
+
if (await dirExists(targetDir)) {
|
|
113
113
|
return { ok: false, message: `目录 ${dirName} 已存在` };
|
|
114
114
|
}
|
|
115
115
|
log.info(`正在安装插件: ${npmPkg} → packages/${dirName}`);
|
|
116
|
-
let
|
|
116
|
+
let tgzPath;
|
|
117
117
|
try {
|
|
118
|
+
await execProc(proc, 'mkdir', ['-p', packagesDir], process.cwd()); // 确保 packages/ 存在
|
|
118
119
|
// npm pack --json 精确返回产物 {filename, name},避免 includes 误匹配
|
|
119
120
|
// (装 foo 时命中 foo-bar-*.tgz);name 是精确包名,供 pnpm --filter 用。
|
|
120
|
-
const packOut = await execProc(proc, 'npm', ['pack', npmPkg, '--pack-destination', packagesDir, '--json'],
|
|
121
|
+
const packOut = await execProc(proc, 'npm', ['pack', npmPkg, '--pack-destination', packagesDir, '--json'], process.cwd());
|
|
121
122
|
const packInfo = parsePackInfo(packOut);
|
|
122
123
|
if (!packInfo)
|
|
123
124
|
return { ok: false, message: '下载包失败: 未能解析 npm pack 产物' };
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
await execProc(proc, '
|
|
127
|
-
await execProc(proc, '
|
|
128
|
-
|
|
129
|
-
tgzName = undefined; // 已删,回滚时不再尝试
|
|
125
|
+
tgzPath = `${packagesDir}/${packInfo.filename}`;
|
|
126
|
+
await execProc(proc, 'mkdir', ['-p', targetDir], process.cwd());
|
|
127
|
+
await execProc(proc, 'tar', ['xzf', tgzPath, '-C', targetDir, '--strip-components=1'], process.cwd());
|
|
128
|
+
await execProc(proc, 'rm', ['-f', tgzPath], process.cwd()); // 清理 tgz
|
|
129
|
+
tgzPath = undefined; // 已删,回滚时不再尝试
|
|
130
130
|
// --filter 用精确包名(npm pack 回报的 name,无版本后缀)链接新 workspace 包
|
|
131
131
|
await execProc(proc, 'pnpm', ['install', '--filter', packInfo.name], process.cwd());
|
|
132
132
|
const newPlugins = await deps.rescanPlugins();
|
|
@@ -138,23 +138,27 @@ export function createPackageManager(deps) {
|
|
|
138
138
|
const message = err instanceof Error ? err.message : String(err);
|
|
139
139
|
log.error(`安装插件 "${npmPkg}" 失败: ${message}`);
|
|
140
140
|
// 回滚:清理半成品 targetDir 与残留 tgz,避免占位导致下次"目录已存在"
|
|
141
|
-
await
|
|
142
|
-
if (
|
|
143
|
-
await
|
|
141
|
+
await execProc(proc, 'rm', ['-rf', targetDir], process.cwd()).catch(() => { });
|
|
142
|
+
if (tgzPath)
|
|
143
|
+
await execProc(proc, 'rm', ['-f', tgzPath], process.cwd()).catch(() => { });
|
|
144
144
|
return { ok: false, message };
|
|
145
145
|
}
|
|
146
146
|
},
|
|
147
147
|
async uninstall(pluginName) {
|
|
148
|
-
await deps.disablePlugin(pluginName); // 先停用实例(plugins 服务缺席则 no-op)
|
|
149
148
|
const dirName = pluginName.replace(/^@[^/]+\//, '');
|
|
150
|
-
const
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
}
|
|
149
|
+
const packagesDir = deps.packagesDir();
|
|
150
|
+
const targetDir = `${packagesDir}/${dirName}`;
|
|
151
|
+
const existed = await dirExists(targetDir);
|
|
154
152
|
try {
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
153
|
+
if (existed)
|
|
154
|
+
await execProc(proc, 'rm', ['-rf', targetDir], process.cwd()); // 删目录,不再回来
|
|
155
|
+
await deps.unloadPlugin(pluginName); // 从运行时注册表彻底移除(dispose + delete),幂等
|
|
156
|
+
deps.cleanupConfig?.(pluginName); // 清残留配置
|
|
157
|
+
log.info(existed ? `已删除插件目录: packages/${dirName}` : `插件 ${pluginName} 目录原不存在,已从运行时移除`);
|
|
158
|
+
return {
|
|
159
|
+
ok: true,
|
|
160
|
+
message: existed ? `插件 ${pluginName} 已卸载并删除` : `插件 ${pluginName} 已从运行时移除(目录原不存在)`,
|
|
161
|
+
};
|
|
158
162
|
}
|
|
159
163
|
catch (err) {
|
|
160
164
|
const message = err instanceof Error ? err.message : String(err);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAwC,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aalis/plugin-package-manager",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"license": "MIT",
|
|
4
5
|
"type": "module",
|
|
5
6
|
"keywords": [
|
|
6
7
|
"aalis-plugin"
|
|
@@ -11,13 +12,12 @@
|
|
|
11
12
|
"dist"
|
|
12
13
|
],
|
|
13
14
|
"dependencies": {
|
|
14
|
-
"@aalis/plugin-process-api": "^0.1.
|
|
15
|
-
"@aalis/plugin-storage-api": "^0.1.0"
|
|
15
|
+
"@aalis/plugin-process-api": "^0.1.1"
|
|
16
16
|
},
|
|
17
17
|
"devDependencies": {
|
|
18
18
|
"@types/node": "^22.0.0",
|
|
19
19
|
"typescript": "^5.7.0",
|
|
20
|
-
"@aalis/core": "0.1.
|
|
20
|
+
"@aalis/core": "0.1.3"
|
|
21
21
|
},
|
|
22
22
|
"peerDependencies": {
|
|
23
23
|
"@aalis/core": "^0.1.0"
|
|
@@ -25,8 +25,7 @@
|
|
|
25
25
|
"aalis": {
|
|
26
26
|
"service": {
|
|
27
27
|
"required": [
|
|
28
|
-
"process"
|
|
29
|
-
"storage"
|
|
28
|
+
"process"
|
|
30
29
|
],
|
|
31
30
|
"provides": [
|
|
32
31
|
"package-manager"
|