@aalis/runtime 0.13.0 → 0.15.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 +1 -1
- package/dist/bootstrap-buffer.d.ts +3 -3
- package/dist/bootstrap-buffer.js +1 -1
- package/dist/config-store.d.ts +38 -0
- package/dist/config-store.d.ts.map +1 -0
- package/dist/config-store.js +171 -0
- package/dist/config-store.js.map +1 -0
- package/dist/config-sync.d.ts +19 -13
- package/dist/config-sync.d.ts.map +1 -1
- package/dist/config-sync.js +65 -32
- package/dist/config-sync.js.map +1 -1
- package/dist/file-logger.d.ts +5 -0
- package/dist/file-logger.d.ts.map +1 -1
- package/dist/file-logger.js +41 -3
- package/dist/file-logger.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/node-modules-loader.d.ts +8 -14
- package/dist/node-modules-loader.d.ts.map +1 -1
- package/dist/node-modules-loader.js +84 -58
- package/dist/node-modules-loader.js.map +1 -1
- package/dist/plugin-discovery.d.ts +42 -0
- package/dist/plugin-discovery.d.ts.map +1 -0
- package/dist/plugin-discovery.js +107 -0
- package/dist/plugin-discovery.js.map +1 -0
- package/dist/providers.d.ts +8 -5
- package/dist/providers.d.ts.map +1 -1
- package/dist/providers.js +74 -40
- package/dist/providers.js.map +1 -1
- package/dist/start.d.ts +10 -1
- package/dist/start.d.ts.map +1 -1
- package/dist/start.js +62 -30
- package/dist/start.js.map +1 -1
- package/dist/subcommand.d.ts +1 -1
- package/dist/subcommand.js +1 -1
- package/dist/terminal.d.ts +1 -1
- package/dist/terminal.js +1 -1
- package/package.json +8 -9
package/dist/providers.d.ts
CHANGED
|
@@ -1,17 +1,20 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type AalisConfig } from '@aalis/api-host-config';
|
|
2
|
+
import type { RestartStrategy } from '@aalis/core';
|
|
3
|
+
import type { ConfigProvider } from './config-store.js';
|
|
4
|
+
import type { PluginLoader } from './plugin-discovery.js';
|
|
2
5
|
interface FsYamlConfigProviderResult {
|
|
3
|
-
/**
|
|
6
|
+
/** 当前快照(交给 `createConfigStore(config, provider)` 作初始文档) */
|
|
4
7
|
config: AalisConfig;
|
|
5
|
-
/** Provider
|
|
8
|
+
/** Provider 实例(交给 `createConfigStore(config, provider)`) */
|
|
6
9
|
provider: ConfigProvider;
|
|
7
10
|
}
|
|
8
11
|
/**
|
|
9
12
|
* 创建一个基于 YAML 文件的 ConfigProvider。
|
|
10
13
|
*
|
|
11
14
|
* - 同步读取 + 解析(值原样加载,不做任何替换——`${VAR}` 插值已随 `.env` 机制删除)
|
|
12
|
-
* - `save()`
|
|
15
|
+
* - `save()` 同步写回;写前比对盘上内容,有尚未生效的外部修改时拒写(抛 {@link ConfigSaveRefusedError},只带路径)
|
|
13
16
|
* - `watch()` 监听**配置文件所在目录**(按文件名过滤)+ 300ms debounce,
|
|
14
|
-
* 并通过与 `rawYaml`
|
|
17
|
+
* 并通过与 `rawYaml` 的内容比对去重,避免自激;拒写之后的下一次变更不去重;武装后立即对账一次
|
|
15
18
|
*
|
|
16
19
|
* 返回 config 快照与 provider,供宿主组装 App。
|
|
17
20
|
*/
|
package/dist/providers.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,WAAW,EAA0B,MAAM,wBAAwB,CAAC;AAClF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAOxD,OAAO,KAAK,EAAoB,YAAY,EAAE,MAAM,uBAAuB,CAAC;AA4C5E,UAAU,0BAA0B;IAClC,2DAA2D;IAC3D,MAAM,EAAE,WAAW,CAAC;IACpB,4DAA4D;IAC5D,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,0BAA0B,CA8L1F;AAMD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,YAAY,CA4CvE;AAMD,0CAA0C;AAC1C,eAAO,MAAM,aAAa,gBAAgB,CAAC;AAE3C;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,yDAAyD;IACzD,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC3E;;;OAGG;IACH,WAAW,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CAC5D;AAED,qDAAqD;AACrD,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,eAAe,CAGlE;AAED,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,kDAAkD;AAClD,wBAAgB,mBAAmB,CACjC,IAAI,GAAE,SAAS,MAAM,EAAiB,EACtC,QAAQ,GAAE,SAAS,MAAM,EAAqB,EAC9C,GAAG,GAAE,MAAsB,GAC1B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAYlC;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,GAAE,cAAmB,GAAG,eAAe,CAiHvF"}
|
package/dist/providers.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { spawn } from 'node:child_process';
|
|
2
2
|
import { randomBytes } from 'node:crypto';
|
|
3
3
|
import { chmodSync, existsSync, watch as fsWatch, readFileSync, renameSync, rmSync, statSync, writeFileSync, } from 'node:fs';
|
|
4
|
-
import { readdir
|
|
4
|
+
import { readdir } from 'node:fs/promises';
|
|
5
5
|
import { basename, dirname, resolve } from 'node:path';
|
|
6
|
-
import {
|
|
6
|
+
import { ConfigSaveRefusedError } from '@aalis/api-host-config';
|
|
7
7
|
import { DefaultLogger } from '@aalis/core';
|
|
8
8
|
import { parse as parseYaml, stringify as stringifyYaml } from 'yaml';
|
|
9
|
-
import {
|
|
9
|
+
import { HOST_CORE_DIR, importPluginDefinition, isLoadablePlugin, warnLikelyPluginMissingKeyword, } from './node-modules-loader.js';
|
|
10
10
|
import { disarmTerminalStateRestorer } from './terminal.js';
|
|
11
11
|
// ============================================================
|
|
12
12
|
// FsYamlConfigProvider —— 从 YAML 文件加载+持久化配置
|
|
@@ -51,9 +51,9 @@ function buildSaveYaml(config) {
|
|
|
51
51
|
* 创建一个基于 YAML 文件的 ConfigProvider。
|
|
52
52
|
*
|
|
53
53
|
* - 同步读取 + 解析(值原样加载,不做任何替换——`${VAR}` 插值已随 `.env` 机制删除)
|
|
54
|
-
* - `save()`
|
|
54
|
+
* - `save()` 同步写回;写前比对盘上内容,有尚未生效的外部修改时拒写(抛 {@link ConfigSaveRefusedError},只带路径)
|
|
55
55
|
* - `watch()` 监听**配置文件所在目录**(按文件名过滤)+ 300ms debounce,
|
|
56
|
-
* 并通过与 `rawYaml`
|
|
56
|
+
* 并通过与 `rawYaml` 的内容比对去重,避免自激;拒写之后的下一次变更不去重;武装后立即对账一次
|
|
57
57
|
*
|
|
58
58
|
* 返回 config 快照与 provider,供宿主组装 App。
|
|
59
59
|
*/
|
|
@@ -61,6 +61,10 @@ export function createFsYamlConfigProvider(configPath) {
|
|
|
61
61
|
const absPath = configPath ? resolve(configPath) : resolve(process.cwd(), DEFAULT_CONFIG_FILE);
|
|
62
62
|
const dataDir = dirname(absPath);
|
|
63
63
|
let rawYaml = null;
|
|
64
|
+
// 拒写之后调用方手里的配置文档(常连同运行态)已领先于文件:下一次文件变更不论内容是否等于 rawYaml
|
|
65
|
+
// 都要投递,让宿主按文件重新对账。否则把文件原样改回的「修好」会被当成空变更跳过,文档与运行态从此
|
|
66
|
+
// 偏离文件,下一次成功保存还会把被拒的改动写进去。
|
|
67
|
+
let reconcilePending = false;
|
|
64
68
|
let watcher = null;
|
|
65
69
|
let debounceTimer = null;
|
|
66
70
|
// 走 LogHub 而非 console:file logger 只订阅 LogHub,脱终端部署下 stderr
|
|
@@ -109,6 +113,21 @@ export function createFsYamlConfigProvider(configPath) {
|
|
|
109
113
|
const initialConfig = loadFromDisk();
|
|
110
114
|
const provider = {
|
|
111
115
|
save(config) {
|
|
116
|
+
// 写前比对磁盘实况:盘上内容必须仍是本进程最后读入或写出的那份。不是,就有尚未生效的
|
|
117
|
+
// 外部修改(去抖窗口内、监听未武装、解析失败被搁置、另一个进程写过)——整份覆写会把它
|
|
118
|
+
// 静默吃掉,所以拒写,让调用方收到拒绝。文件不存在时没有可保护的内容,照写。
|
|
119
|
+
let onDisk = null;
|
|
120
|
+
try {
|
|
121
|
+
onDisk = readFileSync(absPath, 'utf-8');
|
|
122
|
+
}
|
|
123
|
+
catch (err) {
|
|
124
|
+
if (err.code !== 'ENOENT')
|
|
125
|
+
throw err;
|
|
126
|
+
}
|
|
127
|
+
if (onDisk !== null && onDisk !== rawYaml) {
|
|
128
|
+
reconcilePending = true;
|
|
129
|
+
throw new ConfigSaveRefusedError(`配置文件有尚未生效的外部修改,为免覆盖已拒绝本次保存(${absPath})`);
|
|
130
|
+
}
|
|
112
131
|
const yaml = buildSaveYaml(config);
|
|
113
132
|
// 原子写:先写临时文件再 rename(同目录同分区,rename 原子覆盖)。
|
|
114
133
|
// 直接 writeFileSync 是 O_CREAT|O_TRUNC——写中断(磁盘写满 / 进程被杀)时截断已经发生、
|
|
@@ -117,18 +136,39 @@ export function createFsYamlConfigProvider(configPath) {
|
|
|
117
136
|
// 连「文件坏了」的现场都不留。同仓 plugin-storage-local 早已为同样的理由做原子写。
|
|
118
137
|
// watch() 守的是目录而非文件(见下),所以 rename 换 inode 不会打断热重载。
|
|
119
138
|
const tmp = `${absPath}.tmp.${process.pid}.${randomBytes(4).toString('hex')}`;
|
|
120
|
-
|
|
121
|
-
//
|
|
122
|
-
//
|
|
139
|
+
// 临时文件建出来就是收紧的权限:沿用原文件的权限位,没有原文件(或取不到)时用 0o600。
|
|
140
|
+
// 配置文件常含密钥:按默认 umask(通常 0644)建出再 chmod,其间或进程在 rename 前被杀时,
|
|
141
|
+
// 目录里就有一份权限更宽的密钥副本;rename 让目标继承 tmp 的权限,用户 chmod 600 过的也不能退回 0644。
|
|
142
|
+
let mode = 0o600;
|
|
123
143
|
try {
|
|
124
|
-
|
|
125
|
-
chmodSync(tmp, statSync(absPath).mode & 0o777);
|
|
144
|
+
mode = statSync(absPath).mode & 0o777;
|
|
126
145
|
}
|
|
127
146
|
catch {
|
|
128
|
-
/*
|
|
147
|
+
/* 原文件不存在或取不到权限:按 0o600 建 */
|
|
148
|
+
}
|
|
149
|
+
try {
|
|
150
|
+
writeFileSync(tmp, yaml, { encoding: 'utf-8', mode });
|
|
151
|
+
// 建文件时的 mode 还会被 umask 收窄;对齐回目标权限位,至多放宽到原文件本就有的程度
|
|
152
|
+
try {
|
|
153
|
+
chmodSync(tmp, mode);
|
|
154
|
+
}
|
|
155
|
+
catch {
|
|
156
|
+
/* 对不齐就保持建出时更窄的权限,不拖累写入本身 */
|
|
157
|
+
}
|
|
158
|
+
renameSync(tmp, absPath);
|
|
159
|
+
}
|
|
160
|
+
catch (err) {
|
|
161
|
+
// 写入或改名失败:临时文件是整份配置(含密钥),不能留在配置目录里
|
|
162
|
+
try {
|
|
163
|
+
rmSync(tmp, { force: true });
|
|
164
|
+
}
|
|
165
|
+
catch {
|
|
166
|
+
/* 删不掉也要把原始错误传出去 */
|
|
167
|
+
}
|
|
168
|
+
throw err;
|
|
129
169
|
}
|
|
130
|
-
renameSync(tmp, absPath);
|
|
131
170
|
rawYaml = yaml;
|
|
171
|
+
reconcilePending = false;
|
|
132
172
|
},
|
|
133
173
|
watch(onChange) {
|
|
134
174
|
if (watcher)
|
|
@@ -138,15 +178,7 @@ export function createFsYamlConfigProvider(configPath) {
|
|
|
138
178
|
return () => { };
|
|
139
179
|
const fileName = basename(absPath);
|
|
140
180
|
try {
|
|
141
|
-
|
|
142
|
-
// 保存普遍是「写临时文件 → rename 覆盖」——rename 之后同名文件已是新 inode,
|
|
143
|
-
// 绑在旧 inode 上的 watcher 从此永不触发,且无异常、无日志、无返回值。
|
|
144
|
-
// save() 同样是「写临时文件 → rename」(见上),自写回也会换 inode——守文件在
|
|
145
|
-
// 第一次保存后就失聪;守目录则人改与自写回两种来源都接得住。
|
|
146
|
-
watcher = fsWatch(dataDir, (_event, filename) => {
|
|
147
|
-
// filename 平台不保证非空;为空时不敢过滤,交给下面的内容比对兜底。
|
|
148
|
-
if (filename && basename(filename.toString()) !== fileName)
|
|
149
|
-
return;
|
|
181
|
+
const schedule = () => {
|
|
150
182
|
if (debounceTimer)
|
|
151
183
|
clearTimeout(debounceTimer);
|
|
152
184
|
debounceTimer = setTimeout(() => {
|
|
@@ -162,8 +194,8 @@ export function createFsYamlConfigProvider(configPath) {
|
|
|
162
194
|
return;
|
|
163
195
|
}
|
|
164
196
|
// rawYaml 在装载 / save / 本回调三处维护,比对它一并挡掉自写回、目录里
|
|
165
|
-
// 无关文件的杂音、touch
|
|
166
|
-
if (current === rawYaml)
|
|
197
|
+
// 无关文件的杂音、touch,以及改完又改回来的空变更。拒写之后的这一次除外(见 reconcilePending)。
|
|
198
|
+
if (current === rawYaml && !reconcilePending)
|
|
167
199
|
return;
|
|
168
200
|
let parsed;
|
|
169
201
|
try {
|
|
@@ -183,6 +215,7 @@ export function createFsYamlConfigProvider(configPath) {
|
|
|
183
215
|
return;
|
|
184
216
|
}
|
|
185
217
|
rawYaml = current;
|
|
218
|
+
reconcilePending = false;
|
|
186
219
|
try {
|
|
187
220
|
onChange(parsed);
|
|
188
221
|
}
|
|
@@ -191,10 +224,24 @@ export function createFsYamlConfigProvider(configPath) {
|
|
|
191
224
|
logger.warn(`配置变更处理器抛错:${err instanceof Error ? err.message : String(err)}`);
|
|
192
225
|
}
|
|
193
226
|
}, 300);
|
|
227
|
+
};
|
|
228
|
+
// **必须监听目录,不能监听文件本身。** fs.watch 绑的是那一刻的 inode,而编辑器
|
|
229
|
+
// 保存普遍是「写临时文件 → rename 覆盖」——rename 之后同名文件已是新 inode,
|
|
230
|
+
// 绑在旧 inode 上的 watcher 从此永不触发,且无异常、无日志、无返回值。
|
|
231
|
+
// save() 同样是「写临时文件 → rename」(见上),自写回也会换 inode——守文件在
|
|
232
|
+
// 第一次保存后就失聪;守目录则人改与自写回两种来源都接得住。
|
|
233
|
+
watcher = fsWatch(dataDir, (_event, filename) => {
|
|
234
|
+
// filename 平台不保证非空;为空时不敢过滤,交给下面的内容比对兜底。
|
|
235
|
+
if (filename && basename(filename.toString()) !== fileName)
|
|
236
|
+
return;
|
|
237
|
+
schedule();
|
|
194
238
|
});
|
|
239
|
+
// 武装即对账一次:武装前(启动期)的外部修改不会再有事件,不补就既不生效、又让 save 一直拒写。
|
|
240
|
+
schedule();
|
|
195
241
|
}
|
|
196
|
-
catch {
|
|
197
|
-
|
|
242
|
+
catch (err) {
|
|
243
|
+
// 平台或挂载不支持 watch:外部修改从此不会自动生效,save 也会因盘上内容已变而拒写。
|
|
244
|
+
logger.warn(`无法监听配置文件变更(${err instanceof Error ? err.message : String(err)}):手动修改后需重启才生效,重启前的进程保存会被拒绝`);
|
|
198
245
|
}
|
|
199
246
|
return () => {
|
|
200
247
|
if (debounceTimer) {
|
|
@@ -258,21 +305,8 @@ export function createFsPluginLoader(packagesDir) {
|
|
|
258
305
|
}
|
|
259
306
|
return discovered;
|
|
260
307
|
},
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
return loadPluginDefinition(await import(pathToFileURL(desc.source).href), desc.name, loaderLogger);
|
|
264
|
-
},
|
|
265
|
-
async reload(desc) {
|
|
266
|
-
assertSameCore(HOST_CORE_DIR, desc.metadata?.dir, desc.name);
|
|
267
|
-
let cacheKey = '';
|
|
268
|
-
try {
|
|
269
|
-
cacheKey = `?t=${(await stat(desc.source)).mtimeMs}`;
|
|
270
|
-
}
|
|
271
|
-
catch {
|
|
272
|
-
/* stat 失败时用空 key,让 import 自己报错 */
|
|
273
|
-
}
|
|
274
|
-
return loadPluginDefinition(await import(pathToFileURL(desc.source).href + cacheKey), desc.name, loaderLogger);
|
|
275
|
-
},
|
|
308
|
+
load: desc => importPluginDefinition(desc, HOST_CORE_DIR, loaderLogger, false),
|
|
309
|
+
reload: desc => importPluginDefinition(desc, HOST_CORE_DIR, loaderLogger, true),
|
|
276
310
|
};
|
|
277
311
|
}
|
|
278
312
|
// ============================================================
|
package/dist/providers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"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"}
|
package/dist/start.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { App
|
|
1
|
+
import { App } from '@aalis/core';
|
|
2
2
|
import { type ConfigSyncOptions } from './config-sync.js';
|
|
3
|
+
import { type PluginLoader } from './plugin-discovery.js';
|
|
3
4
|
export interface StartAalisOptions {
|
|
4
5
|
/** aalis.config.yaml 路径,默认 cwd 下的 aalis.config.yaml */
|
|
5
6
|
configPath?: string;
|
|
@@ -15,6 +16,7 @@ export interface StartAalisOptions {
|
|
|
15
16
|
consoleSink?: boolean;
|
|
16
17
|
/**
|
|
17
18
|
* 文件日志:true→data/latest.log,string→自定义路径,false→关。默认 true(webui/cli 尾读此文件)。
|
|
19
|
+
* 启动时先把上一轮的日志改名保留(编号插在扩展名前:latest.1.log),更早的依次后移,保留 5 份。
|
|
18
20
|
* 子命令模式(argv 非空)一律不写文件日志。
|
|
19
21
|
*/
|
|
20
22
|
fileLog?: boolean | string;
|
|
@@ -33,5 +35,12 @@ export interface StartAalisOptions {
|
|
|
33
35
|
*/
|
|
34
36
|
configSync?: ConfigSyncOptions;
|
|
35
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* 启动一个 Aalis 实例:YAML 配置 + 插件加载 + 进程级重启 + 日志/终端/子命令宿主件。
|
|
40
|
+
* 返回已启动的 App(便于测试或进一步操作)。
|
|
41
|
+
*
|
|
42
|
+
* 生命周期不变量:① `consoleHandle.bindEvents` 必须在 `new App` 之后(之前没有事件总线);
|
|
43
|
+
* ② 子命令短路必须在 `app.start` 之前。
|
|
44
|
+
*/
|
|
36
45
|
export declare function startAalis(opts?: StartAalisOptions): Promise<App>;
|
|
37
46
|
//# sourceMappingURL=start.d.ts.map
|
package/dist/start.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,GAAG,EAA4C,MAAM,aAAa,CAAC;AAG5E,OAAO,EAAE,KAAK,iBAAiB,EAAgD,MAAM,kBAAkB,CAAC;AAIxG,OAAO,EAAyB,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAyBjF,MAAM,WAAW,iBAAiB;IAChC,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uGAAuG;IACvG,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3B,0CAA0C;IAC1C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,mDAAmD;IACnD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAChC;AAeD;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAC,IAAI,GAAE,iBAAsB,GAAG,OAAO,CAAC,GAAG,CAAC,CAyK3E"}
|
package/dist/start.js
CHANGED
|
@@ -1,24 +1,19 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { pluginSource } from '@aalis/api-plugin-source';
|
|
3
|
+
import { App, events, provide, services } from '@aalis/core';
|
|
4
4
|
import { installBootstrapBuffer } from './bootstrap-buffer.js';
|
|
5
|
+
import { createConfigStore, installHostConfig } from './config-store.js';
|
|
5
6
|
import { installConfigHotReload, withPluginConfigSync } from './config-sync.js';
|
|
6
7
|
import { installConsoleSink } from './console-sink.js';
|
|
7
8
|
import { appendCrashLog, DEFAULT_LOG_FILE, setupFileLogger } from './file-logger.js';
|
|
8
9
|
import { createNodeModulesPluginLoader } from './node-modules-loader.js';
|
|
10
|
+
import { createPluginDiscovery } from './plugin-discovery.js';
|
|
9
11
|
import { createFsYamlConfigProvider, createProcessRespawnStrategy, READY_MESSAGE } from './providers.js';
|
|
10
12
|
import { tryDispatchSubcommand } from './subcommand.js';
|
|
11
13
|
import { installTerminalStateRestorer } from './terminal.js';
|
|
12
|
-
/**
|
|
13
|
-
* 启动一个 Aalis 实例:YAML 配置 + 插件加载 + 进程级重启 + 日志/终端/子命令宿主件。
|
|
14
|
-
* 返回已启动的 App(便于测试或进一步操作)。
|
|
15
|
-
*
|
|
16
|
-
* 生命周期不变量:① `consoleHandle.bindEvents` 必须在 `new App` 之后(之前无 ctx);
|
|
17
|
-
* ② 子命令短路必须在 `app.start` 之前。
|
|
18
|
-
*/
|
|
19
14
|
/**
|
|
20
15
|
* 读取 @aalis/core 的实际安装版本,供 App 启动 banner 展示。
|
|
21
|
-
* core
|
|
16
|
+
* core 的 `exports` 开放了 `./package.json` 子路径,可 require;解析失败则返回 undefined,
|
|
22
17
|
* banner 自动省略版本段(不因版本读取失败而影响启动)。
|
|
23
18
|
*/
|
|
24
19
|
function readCoreVersion() {
|
|
@@ -29,22 +24,28 @@ function readCoreVersion() {
|
|
|
29
24
|
return undefined;
|
|
30
25
|
}
|
|
31
26
|
}
|
|
27
|
+
/**
|
|
28
|
+
* 启动一个 Aalis 实例:YAML 配置 + 插件加载 + 进程级重启 + 日志/终端/子命令宿主件。
|
|
29
|
+
* 返回已启动的 App(便于测试或进一步操作)。
|
|
30
|
+
*
|
|
31
|
+
* 生命周期不变量:① `consoleHandle.bindEvents` 必须在 `new App` 之后(之前没有事件总线);
|
|
32
|
+
* ② 子命令短路必须在 `app.start` 之前。
|
|
33
|
+
*/
|
|
32
34
|
export async function startAalis(opts = {}) {
|
|
33
35
|
const { consoleSink = true, fileLog = true, terminalRestore = true } = opts;
|
|
34
|
-
|
|
35
|
-
const subcommands = Array.isArray(opts.subcommands) ? opts.subcommands : process.argv.slice(2);
|
|
36
|
+
const subcommands = opts.subcommands ?? process.argv.slice(2);
|
|
36
37
|
// ── 最早期:任何日志之前先装 bootstrap buffer,再装 terminal / console sink ──
|
|
37
38
|
const bootstrap = installBootstrapBuffer();
|
|
38
39
|
if (terminalRestore)
|
|
39
40
|
installTerminalStateRestorer();
|
|
40
41
|
const subcommandMode = subcommands.length > 0;
|
|
41
|
-
// console sink 在 App
|
|
42
|
+
// console sink 在 App 之前装:此时尚无事件总线(根绑定),sink 处于「无条件写」状态以打印早期启动日志,
|
|
42
43
|
// 待 App 起来再 bindEvents 接管 terminal:claimed/released。子命令模式日志走 stderr,stdout 只留命令结果。
|
|
43
44
|
// consoleSink: false 仍装 stderr + minLevel warn:加载器拒载「另一份 @aalis/core」的插件记 error,不能只剩下游「commands 服务不可用」。
|
|
44
45
|
const consoleHandle = consoleSink
|
|
45
46
|
? installConsoleSink(subcommandMode ? { target: 'stderr' } : {})
|
|
46
47
|
: installConsoleSink({ target: 'stderr', minLevel: 'warn' });
|
|
47
|
-
// 子命令进程不写文件日志:setupFileLogger
|
|
48
|
+
// 子命令进程不写文件日志:setupFileLogger 会把 latest.log 轮转走,而守护进程可能正在写它(webui 历史日志
|
|
48
49
|
// 以该文件为单一数据源)。
|
|
49
50
|
const fileLogTarget = fileLog === false || subcommandMode ? undefined : typeof fileLog === 'string' ? fileLog : DEFAULT_LOG_FILE;
|
|
50
51
|
// ── fatal handler(覆盖整个 async 启动过程)──
|
|
@@ -72,15 +73,18 @@ export async function startAalis(opts = {}) {
|
|
|
72
73
|
fileLogger = await setupFileLogger(fileLogTarget);
|
|
73
74
|
// sink 全部装好;bootstrap buffer 完成使命,解除订阅并释放内存。
|
|
74
75
|
bootstrap.dispose();
|
|
75
|
-
// ── 组装 App
|
|
76
|
+
// ── 组装 App:YAML 配置文档、按 loader 发现插件、用 spawn 重启 ──
|
|
76
77
|
const { config, provider } = createFsYamlConfigProvider(opts.configPath);
|
|
77
|
-
const
|
|
78
|
+
const store = createConfigStore(config, provider);
|
|
79
|
+
// core 的慢操作阈值:缺省(含 YAML 空键解出的 null)交给 core 默认;不是非负有限数的写法告警后同样交给默认
|
|
80
|
+
// (启动时读取,改了要重启)
|
|
81
|
+
const slowThresholdMs = store.get('slowThresholdMs') ?? undefined;
|
|
82
|
+
const slowThresholdValid = slowThresholdMs === undefined ||
|
|
83
|
+
(typeof slowThresholdMs === 'number' && Number.isFinite(slowThresholdMs) && slowThresholdMs >= 0);
|
|
78
84
|
const app = new App({
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
// 默认值从 configSchema 派生(唯一声明来源);core 不认识配置词汇,只调这个函数。
|
|
83
|
-
pluginDefaults: m => defaultsFrom(m.configSchema),
|
|
85
|
+
name: store.get('name'),
|
|
86
|
+
logLevel: store.get('logLevel'),
|
|
87
|
+
slowThresholdMs: slowThresholdValid ? slowThresholdMs : undefined,
|
|
84
88
|
// 子命令进程没有重启能力,不注入策略:`app.restart()` 按 core 语义抛「不可用」,指令层折成失败文案。
|
|
85
89
|
// 注入的话,`restart` 子命令在 app.stop 超过策略 500ms 等待时会 spawn 一个 argv 仍带 restart 的
|
|
86
90
|
// detached 子进程,新进程再命中 restart……无限连环(实测 5 代,Ctrl+C 打不到)。
|
|
@@ -92,13 +96,24 @@ export async function startAalis(opts = {}) {
|
|
|
92
96
|
// 宿主读取 @aalis/core 的实际版本注入启动 banner——core 环境无关、不自读 package.json。
|
|
93
97
|
version: readCoreVersion(),
|
|
94
98
|
});
|
|
95
|
-
|
|
96
|
-
|
|
99
|
+
if (!slowThresholdValid) {
|
|
100
|
+
// 数字照原样显示:JSON.stringify 会把 Infinity / NaN 显示成 null
|
|
101
|
+
const received = typeof slowThresholdMs === 'number' ? String(slowThresholdMs) : JSON.stringify(slowThresholdMs);
|
|
102
|
+
app.logger.warn(`配置项 slowThresholdMs 应为不小于 0 的有限数字(毫秒),收到 ${received},按默认值处理`);
|
|
103
|
+
}
|
|
104
|
+
// 配置文档先于任何插件接上:文档里的服务偏好要在全部提供者上线前生效
|
|
105
|
+
installHostConfig(app, store, opts.configSync);
|
|
106
|
+
// 默认值从 configSchema 派生(唯一声明来源),导入定义后、登记前深合并进文档;登记时原样交给 core
|
|
107
|
+
const configLoader = withPluginConfigSync(opts.pluginLoader ?? createNodeModulesPluginLoader(opts.projectDir), app, store, opts.configSync);
|
|
108
|
+
// 宿主的根绑定:事件订阅、服务查询与宿主服务登记都经它,随 App 停止撤回
|
|
109
|
+
const host = app.bind({ events, provide, services });
|
|
110
|
+
const discovery = createPluginDiscovery(app, configLoader.loader, store);
|
|
111
|
+
host.provide(pluginSource, { rescan: () => discovery.rescan() }, { exclusive: true });
|
|
97
112
|
// 不变量①:App 构造完成后再让 sink 监听终端归属事件——此前没有事件总线可订阅。
|
|
98
113
|
consoleHandle.bindEvents(host.events);
|
|
99
114
|
try {
|
|
100
115
|
// 每个定义交给 Core 前已经规范化;首次 apply 与配置快照用同一份字段。
|
|
101
|
-
await
|
|
116
|
+
await discovery.loadAll();
|
|
102
117
|
}
|
|
103
118
|
finally {
|
|
104
119
|
// 即使后续加载失败,也保存本批已完成的规范化;不启动第二轮 bounce。
|
|
@@ -120,13 +135,30 @@ export async function startAalis(opts = {}) {
|
|
|
120
135
|
// 典型链条:A 缺 apiKey 激活失败(有 ERROR)→ 依赖 A 所提供服务的 B 静默挂起,
|
|
121
136
|
// 用户只看到 A 的报错,会以为「只是 A 不可用」,不知道 B 也一并废了
|
|
122
137
|
// (实例:embedding-openai 缺 key → memory-vector 永远不激活,向量记忆整个不工作)。
|
|
123
|
-
|
|
138
|
+
// 没有提供者的服务若由仍在激活中(含已转入后台)的插件声明提供,报「等待 <实例> 激活完成」而非缺少:
|
|
139
|
+
// 它的服务在激活完成前不对外。判据同 plugin-doctor 的 plugins.pending。
|
|
140
|
+
const status = app.plugins.getStatus();
|
|
141
|
+
const activating = status.filter(s => s.state === 'activating');
|
|
142
|
+
for (const p of status) {
|
|
124
143
|
if (p.state !== 'pending')
|
|
125
144
|
continue;
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
-
|
|
145
|
+
const missing = [];
|
|
146
|
+
const waiting = new Set();
|
|
147
|
+
for (const svc of p.requiredServices ?? []) {
|
|
148
|
+
if (host.services.inspect(svc).length > 0)
|
|
149
|
+
continue;
|
|
150
|
+
const provider = activating.find(s => s.provides?.includes(svc));
|
|
151
|
+
if (provider)
|
|
152
|
+
waiting.add(provider.instanceId);
|
|
153
|
+
else
|
|
154
|
+
missing.push(svc);
|
|
129
155
|
}
|
|
156
|
+
const reasons = [
|
|
157
|
+
...(missing.length > 0 ? [`缺少服务: ${missing.join('、')}`] : []),
|
|
158
|
+
...[...waiting].map(id => `等待 ${id} 激活完成`),
|
|
159
|
+
];
|
|
160
|
+
if (reasons.length > 0)
|
|
161
|
+
app.logger.warn(`插件 "${p.instanceId}" 依赖未满足,未激活(${reasons.join(';')})`);
|
|
130
162
|
}
|
|
131
163
|
// 向重启我们的父进程回报「起来了」。父进程据此决定放手退出,还是判定本次
|
|
132
164
|
// 更新失败并回滚(见 providers.ts 的 createProcessRespawnStrategy)。
|
|
@@ -143,8 +175,8 @@ export async function startAalis(opts = {}) {
|
|
|
143
175
|
process.send?.({ type: READY_MESSAGE }, undefined, undefined, () => { });
|
|
144
176
|
// 握手完成后解除 IPC 对事件循环的持有——否则父进程退出前本进程无法自然结束。
|
|
145
177
|
process.channel?.unref();
|
|
146
|
-
// 配置外部变更热重载(provider 不支持 watch 时为 no-op
|
|
147
|
-
installConfigHotReload(app, opts.configSync);
|
|
178
|
+
// 配置外部变更热重载(provider 不支持 watch 时为 no-op);文件里新增的后缀实例经发现驱动登记。
|
|
179
|
+
installConfigHotReload(app, store, discovery, opts.configSync);
|
|
148
180
|
let stopping = false;
|
|
149
181
|
const shutdown = async () => {
|
|
150
182
|
if (stopping)
|
package/dist/start.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":"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"}
|
package/dist/subcommand.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ import type { Services } from '@aalis/core';
|
|
|
8
8
|
*
|
|
9
9
|
* 不直接绑定任何具体命令;所有命令由插件向 commands 服务注册。
|
|
10
10
|
*
|
|
11
|
-
*
|
|
11
|
+
* 抽离到独立模块以便单测。
|
|
12
12
|
*/
|
|
13
13
|
export declare function tryDispatchSubcommand(services: Services, argv: string[], out?: (msg: string) => void, err?: (msg: string) => void): Promise<number>;
|
|
14
14
|
//# sourceMappingURL=subcommand.d.ts.map
|
package/dist/subcommand.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* 不直接绑定任何具体命令;所有命令由插件向 commands 服务注册。
|
|
9
9
|
*
|
|
10
|
-
*
|
|
10
|
+
* 抽离到独立模块以便单测。
|
|
11
11
|
*/
|
|
12
12
|
export async function tryDispatchSubcommand(services, argv, out = msg => console.log(msg), err = msg => console.error(msg)) {
|
|
13
13
|
const [cmdName = '', ...rest] = argv;
|
package/dist/terminal.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export declare function installTerminalStateRestorer(): void;
|
|
|
9
9
|
* exit 钩子写出的 `\x1b[?1049l` 落在子进程已接管终端之后,把新实例的 TUI 当场踢出备用屏。
|
|
10
10
|
*
|
|
11
11
|
* 摘掉是安全的:父进程停机时 plugin-cli 自己的 `stop()` 已经复原过一次
|
|
12
|
-
* (经 `
|
|
12
|
+
* (经 `lifecycle.onDispose`),这个钩子在该路径上本就是第二次复原。
|
|
13
13
|
* 失败分支(子进程夭折)不得摘——那条路没有别人接管终端。
|
|
14
14
|
*/
|
|
15
15
|
export declare function disarmTerminalStateRestorer(): void;
|
package/dist/terminal.js
CHANGED
|
@@ -31,7 +31,7 @@ export function installTerminalStateRestorer() {
|
|
|
31
31
|
* exit 钩子写出的 `\x1b[?1049l` 落在子进程已接管终端之后,把新实例的 TUI 当场踢出备用屏。
|
|
32
32
|
*
|
|
33
33
|
* 摘掉是安全的:父进程停机时 plugin-cli 自己的 `stop()` 已经复原过一次
|
|
34
|
-
* (经 `
|
|
34
|
+
* (经 `lifecycle.onDispose`),这个钩子在该路径上本就是第二次复原。
|
|
35
35
|
* 失败分支(子进程夭折)不得摘——那条路没有别人接管终端。
|
|
36
36
|
*/
|
|
37
37
|
export function disarmTerminalStateRestorer() {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aalis/runtime",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.15.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -26,20 +26,19 @@
|
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"chalk": "^5.4.0",
|
|
28
28
|
"yaml": "^2.7.0",
|
|
29
|
-
"@aalis/schema-config": ">=0.
|
|
30
|
-
"@aalis/schema-log": ">=0.
|
|
29
|
+
"@aalis/schema-config": ">=0.13.0 <1.0.0",
|
|
30
|
+
"@aalis/schema-log": ">=0.2.0 <1.0.0",
|
|
31
|
+
"@aalis/api-plugin-source": ">=0.1.0 <1.0.0",
|
|
32
|
+
"@aalis/api-host-config": ">=0.1.0 <1.0.0"
|
|
31
33
|
},
|
|
32
34
|
"peerDependencies": {
|
|
33
|
-
"@aalis/core": ">=0.
|
|
35
|
+
"@aalis/core": ">=0.19.0 <1.0.0"
|
|
34
36
|
},
|
|
35
37
|
"devDependencies": {
|
|
36
38
|
"typescript": "^5.7.0",
|
|
37
39
|
"@types/node": "^22.0.0",
|
|
38
|
-
"@aalis/core": "0.
|
|
39
|
-
"@aalis/api-commands": "0.
|
|
40
|
-
},
|
|
41
|
-
"aalis": {
|
|
42
|
-
"tooling": true
|
|
40
|
+
"@aalis/core": "0.19.0",
|
|
41
|
+
"@aalis/api-commands": "0.7.0"
|
|
43
42
|
},
|
|
44
43
|
"scripts": {
|
|
45
44
|
"build": "tsc",
|