@aalis/core 0.10.1 → 0.12.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/dist/app.d.ts +20 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +22 -3
- package/dist/app.js.map +1 -1
- package/dist/config.d.ts +5 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +5 -1
- package/dist/config.js.map +1 -1
- package/dist/context.d.ts +75 -4
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +169 -23
- package/dist/context.js.map +1 -1
- package/dist/contributions.d.ts +3 -3
- package/dist/disposable-chain.d.ts +5 -3
- package/dist/disposable-chain.d.ts.map +1 -1
- package/dist/disposable-chain.js +22 -12
- package/dist/disposable-chain.js.map +1 -1
- package/dist/events.d.ts +10 -2
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +30 -7
- package/dist/events.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/plugin-activation.d.ts +23 -0
- package/dist/plugin-activation.d.ts.map +1 -1
- package/dist/plugin-activation.js +74 -8
- package/dist/plugin-activation.js.map +1 -1
- package/dist/plugin-topology.d.ts.map +1 -1
- package/dist/plugin-topology.js +16 -17
- package/dist/plugin-topology.js.map +1 -1
- package/dist/plugin.d.ts +5 -3
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +69 -42
- package/dist/plugin.js.map +1 -1
- package/dist/services-helpers.d.ts +0 -2
- package/dist/services-helpers.d.ts.map +1 -1
- package/dist/services-helpers.js +1 -12
- package/dist/services-helpers.js.map +1 -1
- package/dist/services.d.ts +7 -28
- package/dist/services.d.ts.map +1 -1
- package/dist/services.js +2 -28
- package/dist/services.js.map +1 -1
- package/dist/types/app.d.ts +0 -1
- package/dist/types/app.d.ts.map +1 -1
- package/dist/types/plugin.d.ts +3 -10
- package/dist/types/plugin.d.ts.map +1 -1
- package/dist/types/plugin.js.map +1 -1
- package/dist/types/services.js +2 -2
- package/dist/types/services.js.map +1 -1
- package/package.json +1 -1
package/dist/plugin.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { activatePlugin, computeTargetState } from './plugin-activation.js';
|
|
1
|
+
import { activatePlugin, computeTargetState, retireEntry } from './plugin-activation.js';
|
|
2
2
|
import { evictDownstreamConsumers, topoSortByDeps } from './plugin-topology.js';
|
|
3
3
|
import { normalizeDependency } from './services.js';
|
|
4
4
|
import { parseInstanceId, } from './types/plugin.js';
|
|
@@ -9,7 +9,7 @@ export { parseInstanceId };
|
|
|
9
9
|
*
|
|
10
10
|
* 负责:
|
|
11
11
|
* - 注册/加载/卸载插件
|
|
12
|
-
* - 依赖追踪 (required + optional
|
|
12
|
+
* - 依赖追踪 (required + optional,判据=服务是否在容器中)
|
|
13
13
|
* - 当所需服务就绪时自动激活插件
|
|
14
14
|
* - 当所需服务移除时自动停用插件
|
|
15
15
|
* - 插件启用/禁用控制
|
|
@@ -147,19 +147,29 @@ export class PluginManager {
|
|
|
147
147
|
const entry = this.plugins.get(name);
|
|
148
148
|
if (!entry)
|
|
149
149
|
return;
|
|
150
|
+
// 'disposed' 单向化的 unload 侧:已有卸载在途(或停机遗留终态)时不再二次
|
|
151
|
+
// retire/emit——join 其拆卸(disposeAsync 幂等)后只确保注册表摘除。删除必须
|
|
152
|
+
// 带恒等卫:并发首个 unload 完成后同 id 可能已重新注册,按名盲删会把无辜的
|
|
153
|
+
// 新 entry 扫出注册表,留下注册表外的活实例。
|
|
154
|
+
if (entry.state === 'disposed') {
|
|
155
|
+
const inflight = entry.context;
|
|
156
|
+
if (inflight)
|
|
157
|
+
await inflight.disposeAsync(this.disposeTimeoutMs);
|
|
158
|
+
if (this.plugins.get(name) === entry)
|
|
159
|
+
this.plugins.delete(name);
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
150
162
|
// dispose 段守卫(与 disablePlugin 对齐):dispose 触发的反应式 recompute
|
|
151
163
|
// 排队到收尾的 softReload,避免在 entry 半卸载态下重算。
|
|
152
164
|
this.suspendDepth++;
|
|
153
165
|
try {
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
entry.state = 'disposed';
|
|
162
|
-
this.plugins.delete(name);
|
|
166
|
+
// delete 必须留在拆卸**之后**:注册表是 register/rescan 的查重闸
|
|
167
|
+
// (plugins.has(id)),提前摘除会让同 id 在旧 ctx 排空期间重新注册,
|
|
168
|
+
// 新实例与旧 ctx 同 contextId,旧链的 unregisterByContext 会把新实例
|
|
169
|
+
// 的注册连根扫掉。
|
|
170
|
+
await this.retire(entry, 'disposed');
|
|
171
|
+
if (this.plugins.get(name) === entry)
|
|
172
|
+
this.plugins.delete(name);
|
|
163
173
|
this.logger.info(`插件已卸载: ${name}`);
|
|
164
174
|
}
|
|
165
175
|
finally {
|
|
@@ -168,6 +178,10 @@ export class PluginManager {
|
|
|
168
178
|
// 级联重算:依赖被卸载插件所提供服务的下游需要转 pending
|
|
169
179
|
await this.softReload();
|
|
170
180
|
}
|
|
181
|
+
/** retireEntry 的 deps 便签(字段皆 private,无法把 this 当结构化 deps 传)。 */
|
|
182
|
+
retire(entry, target, opts) {
|
|
183
|
+
return retireEntry(entry, target, { rootCtx: this.rootCtx, logger: this.logger, disposeTimeoutMs: this.disposeTimeoutMs }, opts);
|
|
184
|
+
}
|
|
171
185
|
/**
|
|
172
186
|
* 启用一个已禁用的插件
|
|
173
187
|
*/
|
|
@@ -175,8 +189,13 @@ export class PluginManager {
|
|
|
175
189
|
const entry = this.plugins.get(name);
|
|
176
190
|
if (!entry)
|
|
177
191
|
return false;
|
|
192
|
+
if (entry.state === 'disposed')
|
|
193
|
+
return false; // 正在卸载,'disposed' 对管理路径单向(见 bouncePlugin 内注释)
|
|
178
194
|
if (entry.state !== 'disabled' && entry.state !== 'error')
|
|
179
195
|
return true; // 已经启用
|
|
196
|
+
// 依赖不变量:disabled/error 态的 entry 必然 context 已清(disable 与激活失败
|
|
197
|
+
// 都经 retireEntry 清引用;锚在 admin-during-activation 测试)——否则此处转
|
|
198
|
+
// pending 后会被激活侧的「旧 ctx 未清」闸永久跳过。
|
|
180
199
|
entry.state = 'pending';
|
|
181
200
|
entry.error = undefined;
|
|
182
201
|
this.rootCtx.config.setPluginEnabled(name, true);
|
|
@@ -195,20 +214,15 @@ export class PluginManager {
|
|
|
195
214
|
this.logger.warn(`核心插件 "${name}" 不能被禁用`);
|
|
196
215
|
return false;
|
|
197
216
|
}
|
|
217
|
+
if (entry.state === 'disposed')
|
|
218
|
+
return false; // 正在卸载,'disposed' 对管理路径单向(见 bouncePlugin 内注释)
|
|
198
219
|
if (entry.state === 'disabled')
|
|
199
220
|
return true; // 已经禁用
|
|
200
221
|
// dispose 段守卫:期间反应式 recompute 排队到收尾的 softReload
|
|
201
222
|
this.suspendDepth++;
|
|
202
223
|
try {
|
|
203
|
-
if (entry.state === 'active' && entry.context) {
|
|
204
|
-
await entry.context.disposeAsync(this.disposeTimeoutMs);
|
|
205
|
-
entry.context = undefined;
|
|
206
|
-
this.rootCtx.emit('plugin:unloaded', name).catch(err => {
|
|
207
|
-
this.logger.warn(`emit plugin:unloaded 失败 (${name}): ${err}`);
|
|
208
|
-
});
|
|
209
|
-
}
|
|
210
|
-
entry.state = 'disabled';
|
|
211
224
|
this.rootCtx.config.setPluginEnabled(name, false);
|
|
225
|
+
await this.retire(entry, 'disabled');
|
|
212
226
|
this.logger.info(`插件已禁用: ${name}`);
|
|
213
227
|
}
|
|
214
228
|
finally {
|
|
@@ -224,7 +238,7 @@ export class PluginManager {
|
|
|
224
238
|
* 编译期保证两边不漂移。
|
|
225
239
|
*/
|
|
226
240
|
getStatus() {
|
|
227
|
-
// 状态摘要只含内核事实。配置详情(config / configSchema
|
|
241
|
+
// 状态摘要只含内核事实。配置详情(config / configSchema)与
|
|
228
242
|
// WebUI 展示概念(subsystem/extends)由消费者经 getPlugin(instanceId) 从
|
|
229
243
|
// entry.config / entry.module 读取——core 状态契约不携带。
|
|
230
244
|
return [...this.plugins.entries()].map(([, entry]) => {
|
|
@@ -275,6 +289,14 @@ export class PluginManager {
|
|
|
275
289
|
this.logger.warn(`bouncePlugin: 插件 "${name}" 处于 disabled 态,跳过`);
|
|
276
290
|
return false;
|
|
277
291
|
}
|
|
292
|
+
// 'disposed' 对管理路径单向(含卸载在途与停机后的遗留终态两种情形):
|
|
293
|
+
// unload 写入终态与从注册表摘除之间隔着 retire 的微任务(即使无 ctx 可拆,
|
|
294
|
+
// await 也让出)——此窗口内把它覆写回 'pending' 会重新武装 entry,激活出
|
|
295
|
+
// 一个注册表外的永生孤儿实例;停机后覆写则会把插件误写进持久化禁用清单。
|
|
296
|
+
if (entry.state === 'disposed') {
|
|
297
|
+
this.logger.debug(`bouncePlugin: 插件 "${name}" 已进入 disposed 终态(卸载在途或已停机),跳过`);
|
|
298
|
+
return false;
|
|
299
|
+
}
|
|
278
300
|
const newConfig = opts?.config;
|
|
279
301
|
const newModule = opts?.module;
|
|
280
302
|
if (newConfig) {
|
|
@@ -287,7 +309,16 @@ export class PluginManager {
|
|
|
287
309
|
// recompute 不能在 entry 尚未转 pending 时跑——会把半 bounce 态误判。
|
|
288
310
|
this.suspendDepth++;
|
|
289
311
|
try {
|
|
290
|
-
|
|
312
|
+
// 唯一不走 retireEntry 的拆卸点(见其 JSDoc):写终态与拆卸之间要插入
|
|
313
|
+
// evictDownstreamConsumers,且该 await 窗口要求状态已先落——塞进 helper
|
|
314
|
+
// 需要回调钩子,不值得。本块内联复刻 helper 的四步顺序,勿改动次序。
|
|
315
|
+
entry.state = 'pending';
|
|
316
|
+
entry.error = undefined;
|
|
317
|
+
// ctx 先捕获:evict 的 await 期间并发管理操作可能已拆掉并清空
|
|
318
|
+
// entry.context,重读会 TypeError 并越过收尾的 softReload(queuedReason
|
|
319
|
+
// 悬挂 → idle() 永不落定)。disposeAsync 幂等,重复调用只会等在飞拆卸。
|
|
320
|
+
const ctx = entry.context;
|
|
321
|
+
if (ctx) {
|
|
291
322
|
await evictDownstreamConsumers({
|
|
292
323
|
provider: entry,
|
|
293
324
|
plugins: this.plugins,
|
|
@@ -295,14 +326,18 @@ export class PluginManager {
|
|
|
295
326
|
logger: this.logger,
|
|
296
327
|
disposeTimeoutMs: this.disposeTimeoutMs,
|
|
297
328
|
});
|
|
298
|
-
|
|
299
|
-
|
|
329
|
+
try {
|
|
330
|
+
await ctx.disposeAsync(this.disposeTimeoutMs);
|
|
331
|
+
}
|
|
332
|
+
catch (err) {
|
|
333
|
+
this.logger.error(`插件 "${name}" dispose 抛错: ${err instanceof Error ? err.message : String(err)}`);
|
|
334
|
+
}
|
|
335
|
+
if (entry.context === ctx)
|
|
336
|
+
entry.context = undefined;
|
|
300
337
|
this.rootCtx.emit('plugin:unloaded', name).catch(err => {
|
|
301
338
|
this.logger.warn(`emit plugin:unloaded 失败 (${name}): ${err}`);
|
|
302
339
|
});
|
|
303
340
|
}
|
|
304
|
-
entry.state = 'pending';
|
|
305
|
-
entry.error = undefined;
|
|
306
341
|
}
|
|
307
342
|
finally {
|
|
308
343
|
this.suspendDepth--;
|
|
@@ -359,8 +394,8 @@ export class PluginManager {
|
|
|
359
394
|
* 5. 若本轮有变动则继续下一轮,直到稳定或达到 maxRounds。
|
|
360
395
|
* 6. 非 shutdown 时发出 plugins:changed。
|
|
361
396
|
*
|
|
362
|
-
* Aalis 直接用"
|
|
363
|
-
*
|
|
397
|
+
* Aalis 直接用"服务在不在容器里"做判断(capability 匹配层已于 0.5.0
|
|
398
|
+
* 删除)—— 表达力等价、复杂度更低。
|
|
364
399
|
*/
|
|
365
400
|
async recompute(reason) {
|
|
366
401
|
if (this.shuttingDown && reason.type !== 'shutdown') {
|
|
@@ -378,6 +413,9 @@ export class PluginManager {
|
|
|
378
413
|
// 立即返回而不能把在飞 promise 交还调用方——若调用方恰在某插件 apply()
|
|
379
414
|
// 内同步调用(在飞 run 正 await 它),等待在飞 promise 会自我死锁。
|
|
380
415
|
if (this.reloading || this.suspended) {
|
|
416
|
+
// 已知语义损失(如实记账):合并把 service-down 降级为 plugin-state-changed,
|
|
417
|
+
// 被合并的请求拿不到「首轮特殊语义」——requiresBounceOnDepChange 级联在
|
|
418
|
+
// 该路径恒不触发(当前零第一方声明方;根修需按 reason 集合排队,刀单在案)。
|
|
381
419
|
this.queuedReason = reason.type === 'shutdown' ? reason : (this.queuedReason ?? { type: 'plugin-state-changed' });
|
|
382
420
|
return;
|
|
383
421
|
}
|
|
@@ -442,21 +480,10 @@ export class PluginManager {
|
|
|
442
480
|
this.logger.info(`依赖服务 "${currentReason.service}" 已下线,降级插件为待激活: ${entry.instanceId}`);
|
|
443
481
|
}
|
|
444
482
|
}
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
catch (err) {
|
|
450
|
-
this.logger.error(`插件 "${entry.instanceId}" dispose 抛错: ${err instanceof Error ? err.message : String(err)}`);
|
|
451
|
-
}
|
|
452
|
-
entry.context = undefined;
|
|
453
|
-
}
|
|
454
|
-
entry.state = currentReason.type === 'shutdown' ? 'disposed' : 'pending';
|
|
455
|
-
if (currentReason.type !== 'shutdown') {
|
|
456
|
-
this.rootCtx.emit('plugin:unloaded', entry.instanceId).catch(err => {
|
|
457
|
-
this.logger.warn(`emit plugin:unloaded 失败 (${entry.instanceId}): ${err}`);
|
|
458
|
-
});
|
|
459
|
-
}
|
|
483
|
+
// 关机降级不发 unloaded:stopAll 的编排自有事件语义,逐插件不重复广播。
|
|
484
|
+
await this.retire(entry, currentReason.type === 'shutdown' ? 'disposed' : 'pending', {
|
|
485
|
+
emitUnloaded: currentReason.type !== 'shutdown',
|
|
486
|
+
});
|
|
460
487
|
changed = true;
|
|
461
488
|
lastRoundFlips.push(entry.instanceId);
|
|
462
489
|
}
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,6 @@ import type { ServiceContainer } from './services.js';
|
|
|
5
5
|
* provide() 的 dev-mode 校验集合:
|
|
6
6
|
* 1. entryId 必须以 ctxId 为前缀(否则 plugin 卸载时清理不到)
|
|
7
7
|
* 2. 同一上下文重复 provide 同一服务名静默失效(容器路由按 contextId)
|
|
8
|
-
* 3. priority 应使用 ServicePriority enum 而非裸数字
|
|
9
8
|
*
|
|
10
9
|
* 参数 explicitEntryId 区分"调用方有意覆盖 entryId"vs"使用 ctxId 默认值"——
|
|
11
10
|
* 前者才触发 entryId 前缀检查与抑制重复 provide warn(有意拆粒度的语义)。
|
|
@@ -17,7 +16,6 @@ export declare function validateProvide(args: {
|
|
|
17
16
|
name: string;
|
|
18
17
|
entryId: string;
|
|
19
18
|
explicitEntryId: boolean;
|
|
20
|
-
priority?: number;
|
|
21
19
|
services: ServiceContainer;
|
|
22
20
|
logger: Logger;
|
|
23
21
|
}): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services-helpers.d.ts","sourceRoot":"","sources":["../src/services-helpers.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"services-helpers.d.ts","sourceRoot":"","sources":["../src/services-helpers.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,IAAI,CAoBP;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAI1F"}
|
package/dist/services-helpers.js
CHANGED
|
@@ -7,12 +7,10 @@
|
|
|
7
7
|
// 这里不持有任何状态,所有副作用(注册/警告/事件)都通过参数传入的 services/
|
|
8
8
|
// logger/events 反映出去。便于单元测试(mock 即可)。
|
|
9
9
|
// ============================================================
|
|
10
|
-
import { ServicePriority } from './services.js';
|
|
11
10
|
/**
|
|
12
11
|
* provide() 的 dev-mode 校验集合:
|
|
13
12
|
* 1. entryId 必须以 ctxId 为前缀(否则 plugin 卸载时清理不到)
|
|
14
13
|
* 2. 同一上下文重复 provide 同一服务名静默失效(容器路由按 contextId)
|
|
15
|
-
* 3. priority 应使用 ServicePriority enum 而非裸数字
|
|
16
14
|
*
|
|
17
15
|
* 参数 explicitEntryId 区分"调用方有意覆盖 entryId"vs"使用 ctxId 默认值"——
|
|
18
16
|
* 前者才触发 entryId 前缀检查与抑制重复 provide warn(有意拆粒度的语义)。
|
|
@@ -20,7 +18,7 @@ import { ServicePriority } from './services.js';
|
|
|
20
18
|
* 失败模式:均为 warn(提示但不阻断)。
|
|
21
19
|
*/
|
|
22
20
|
export function validateProvide(args) {
|
|
23
|
-
const { ctxId, name, entryId, explicitEntryId,
|
|
21
|
+
const { ctxId, name, entryId, explicitEntryId, services, logger } = args;
|
|
24
22
|
if (explicitEntryId && entryId !== ctxId && !entryId.startsWith(`${ctxId}/`)) {
|
|
25
23
|
logger.warn(`服务 "${name}" 的 entryId "${entryId}" 不以 "${ctxId}/" 为前缀。` +
|
|
26
24
|
`违反约定后 plugin 卸载时可能遗漏清理。` +
|
|
@@ -33,15 +31,6 @@ export function validateProvide(args) {
|
|
|
33
31
|
`然后在 config 中用 "<name>:<suffix>" 形式注册多份。` +
|
|
34
32
|
`若是有意拆出多个子粒度 entry(如 per-model LLM),请传入 options.entryId。`);
|
|
35
33
|
}
|
|
36
|
-
if (priority !== undefined) {
|
|
37
|
-
const standard = Object.values(ServicePriority);
|
|
38
|
-
if (!standard.includes(priority)) {
|
|
39
|
-
// 裸数字作为细粒度预留滩位是合理设计(如 priority=10 在 Backend 与 Override 之间插入),
|
|
40
|
-
// 不强制使用 enum。但保留 debug 日志,方便排查「谁是默认胜者」问题。
|
|
41
|
-
logger.debug(`服务 "${name}" 使用裸数字 priority=${priority}(非 ServicePriority enum:Backend=0/Override=50/System=200)。` +
|
|
42
|
-
`这是允许的,但插件作者须自行记载该数值含义以便下游推断胜者。`);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
34
|
}
|
|
46
35
|
/**
|
|
47
36
|
* 异步发射 service:registered 事件,捕获并 warn 任何监听器抛错。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services-helpers.js","sourceRoot":"","sources":["../src/services-helpers.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,wCAAwC;AACxC,EAAE;AACF,qDAAqD;AACrD,uDAAuD;AACvD,EAAE;AACF,8CAA8C;AAC9C,sCAAsC;AACtC,+DAA+D;
|
|
1
|
+
{"version":3,"file":"services-helpers.js","sourceRoot":"","sources":["../src/services-helpers.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,wCAAwC;AACxC,EAAE;AACF,qDAAqD;AACrD,uDAAuD;AACvD,EAAE;AACF,8CAA8C;AAC9C,sCAAsC;AACtC,+DAA+D;AAM/D;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,IAO/B;IACC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAEzE,IAAI,eAAe,IAAI,OAAO,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC;QAC7E,MAAM,CAAC,IAAI,CACT,OAAO,IAAI,gBAAgB,OAAO,SAAS,KAAK,SAAS;YACvD,yBAAyB;YACzB,gCAAgC,CACnC,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,eAAe,IAAI,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;QAC3D,MAAM,CAAC,IAAI,CACT,OAAO,IAAI,cAAc,KAAK,4BAA4B;YACxD,qCAAqC;YACrC,mDAAmD;YACnD,yCAAyC;YACzC,yDAAyD,CAC5D,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAgB,EAAE,MAAc,EAAE,IAAY;IAClF,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;QAClD,MAAM,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/services.d.ts
CHANGED
|
@@ -1,32 +1,11 @@
|
|
|
1
1
|
import type { DependencyDeclaration } from './types/services.js';
|
|
2
|
-
/**
|
|
3
|
-
* 服务优先级约定(数字越大越优先)
|
|
4
|
-
*
|
|
5
|
-
* 用于 `ctx.provide(name, instance, { priority })`。
|
|
6
|
-
* 同优先级时,先注册的胜出(稳定降序排序)。
|
|
7
|
-
*
|
|
8
|
-
* 设计目的:把『谁是默认胜者』变成静态、可预测的契约。
|
|
9
|
-
* 与 preferService 正交、非替代关系:优先级是静态默认序,偏好是用户显式覆盖,
|
|
10
|
-
* 解析序恒为「偏好 > 优先级 > 注册顺序」。
|
|
11
|
-
*
|
|
12
|
-
* 推荐用法:
|
|
13
|
-
* - `Backend = 0`:普通后端实现(如 plugin-llm-openai / plugin-llm-deepseek)。
|
|
14
|
-
* - `Override = 50`:用户级覆盖;同名服务希望默认胜过普通后端时使用。
|
|
15
|
-
* - `System = 200`:保留给核心系统级覆盖。
|
|
16
|
-
*
|
|
17
|
-
* 注:feat/service-granularity 之后已不再有 router/facade 层级——LLM / storage / platform
|
|
18
|
-
* 均改为按 model / root / sessionId 直接注册多 entry,跨 entry 的聚合与路由由各自
|
|
19
|
-
* `*-api` 的 helper 函数承担(`createStorageGateway` / `resolvePlatformBySession` / ...),
|
|
20
|
-
* 没有同名 facade entry,因此曾经的 `Router = 100` 槽位整体废弃。
|
|
21
|
-
*/
|
|
22
|
-
export declare const ServicePriority: {
|
|
23
|
-
readonly Backend: 0;
|
|
24
|
-
readonly Override: 50;
|
|
25
|
-
readonly System: 200;
|
|
26
|
-
};
|
|
27
|
-
export type ServicePriorityValue = (typeof ServicePriority)[keyof typeof ServicePriority];
|
|
28
2
|
export interface ServiceEntry {
|
|
29
3
|
instance: unknown;
|
|
4
|
+
/**
|
|
5
|
+
* 数字越大越优先;同值先注册者胜(稳定降序)。解析序恒为
|
|
6
|
+
* 「偏好 > 优先级 > 注册顺序」——优先级是静态默认序,偏好是用户显式覆盖。
|
|
7
|
+
* 数值含义由 provider 自行记载(部署可调,如 asr 插件把它开进 config)。
|
|
8
|
+
*/
|
|
30
9
|
priority: number;
|
|
31
10
|
contextId: string;
|
|
32
11
|
/** 可选的展示标签(如 "OpenAI / gpt-4o") */
|
|
@@ -67,7 +46,7 @@ export declare class ServiceContainer {
|
|
|
67
46
|
*/
|
|
68
47
|
private resolveEntries;
|
|
69
48
|
/**
|
|
70
|
-
*
|
|
49
|
+
* 获取当前胜者实例(偏好 > 优先级 > 注册顺序)。
|
|
71
50
|
*
|
|
72
51
|
* 不走 `resolveEntries`:那里在设了偏好时要 `find` + `filter` + spread 出一条全新的重排
|
|
73
52
|
* 数组,而这里只取首个、其余全丢。`getService` 是全仓最频繁的读(三百余处调用点),
|
|
@@ -123,7 +102,7 @@ export declare class ServiceContainer {
|
|
|
123
102
|
* 设置某服务的偏好 provider(按 contextId)
|
|
124
103
|
*
|
|
125
104
|
* 语义:偏好 > 优先级 > 注册顺序。即偏好 entry 总会被 `get()` 第一个返回,
|
|
126
|
-
* 哪怕它的 priority
|
|
105
|
+
* 哪怕它的 priority 数值低于其它 entry。
|
|
127
106
|
*
|
|
128
107
|
* @returns true 表示偏好已记录(即使目标 entry 当下尚未注册也会接受——一旦注册即生效)
|
|
129
108
|
* @internal 公开 API 走 `ctx.preferService()`(额外 emit service:preference-changed
|
package/dist/services.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../src/services.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAIjE
|
|
1
|
+
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../src/services.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAIjE,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,qBAAqB,GAAG,oBAAoB,CAEpF;AAED;;;;;;;GAOG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAqC;IACpD,uEAAuE;IACvE,OAAO,CAAC,WAAW,CAA6B;IAEhD;;;;OAIG;IACH,QAAQ,CACN,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,OAAO,EACjB,QAAQ,GAAE,MAAU,EACpB,SAAS,GAAE,MAAe,EAC1B,KAAK,CAAC,EAAE,MAAM,GACb,YAAY;IAkBf;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc;IAUtB;;;;;;;;;OASG;IACH,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAWnC;;;;;OAKG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAOtD;;;;;OAKG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO;IAU3D;;;;;OAKG;IACH,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE;IAkBhD;;OAEG;IACH,eAAe,IAAI,MAAM,EAAE;IAI3B;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE;IAIxC;;;;OAIG;IACH,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,QAAQ,EAAE,CAAC,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IASpG;;;;;;;;;OASG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAKhD;;;OAGG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI/B;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAG/C"}
|
package/dist/services.js
CHANGED
|
@@ -1,29 +1,3 @@
|
|
|
1
|
-
// ----- 服务系统数据契约(与容器实现同文件,同 contributions.ts 的 Spec/Handle 惯例) -----
|
|
2
|
-
/**
|
|
3
|
-
* 服务优先级约定(数字越大越优先)
|
|
4
|
-
*
|
|
5
|
-
* 用于 `ctx.provide(name, instance, { priority })`。
|
|
6
|
-
* 同优先级时,先注册的胜出(稳定降序排序)。
|
|
7
|
-
*
|
|
8
|
-
* 设计目的:把『谁是默认胜者』变成静态、可预测的契约。
|
|
9
|
-
* 与 preferService 正交、非替代关系:优先级是静态默认序,偏好是用户显式覆盖,
|
|
10
|
-
* 解析序恒为「偏好 > 优先级 > 注册顺序」。
|
|
11
|
-
*
|
|
12
|
-
* 推荐用法:
|
|
13
|
-
* - `Backend = 0`:普通后端实现(如 plugin-llm-openai / plugin-llm-deepseek)。
|
|
14
|
-
* - `Override = 50`:用户级覆盖;同名服务希望默认胜过普通后端时使用。
|
|
15
|
-
* - `System = 200`:保留给核心系统级覆盖。
|
|
16
|
-
*
|
|
17
|
-
* 注:feat/service-granularity 之后已不再有 router/facade 层级——LLM / storage / platform
|
|
18
|
-
* 均改为按 model / root / sessionId 直接注册多 entry,跨 entry 的聚合与路由由各自
|
|
19
|
-
* `*-api` 的 helper 函数承担(`createStorageGateway` / `resolvePlatformBySession` / ...),
|
|
20
|
-
* 没有同名 facade entry,因此曾经的 `Router = 100` 槽位整体废弃。
|
|
21
|
-
*/
|
|
22
|
-
export const ServicePriority = {
|
|
23
|
-
Backend: 0,
|
|
24
|
-
Override: 50,
|
|
25
|
-
System: 200,
|
|
26
|
-
};
|
|
27
1
|
/**
|
|
28
2
|
* 将 string | ServiceDependency 统一为 NormalizedDependency
|
|
29
3
|
*/
|
|
@@ -85,7 +59,7 @@ export class ServiceContainer {
|
|
|
85
59
|
return [preferred, ...list.filter(e => e !== preferred)];
|
|
86
60
|
}
|
|
87
61
|
/**
|
|
88
|
-
*
|
|
62
|
+
* 获取当前胜者实例(偏好 > 优先级 > 注册顺序)。
|
|
89
63
|
*
|
|
90
64
|
* 不走 `resolveEntries`:那里在设了偏好时要 `find` + `filter` + spread 出一条全新的重排
|
|
91
65
|
* 数组,而这里只取首个、其余全丢。`getService` 是全仓最频繁的读(三百余处调用点),
|
|
@@ -192,7 +166,7 @@ export class ServiceContainer {
|
|
|
192
166
|
* 设置某服务的偏好 provider(按 contextId)
|
|
193
167
|
*
|
|
194
168
|
* 语义:偏好 > 优先级 > 注册顺序。即偏好 entry 总会被 `get()` 第一个返回,
|
|
195
|
-
* 哪怕它的 priority
|
|
169
|
+
* 哪怕它的 priority 数值低于其它 entry。
|
|
196
170
|
*
|
|
197
171
|
* @returns true 表示偏好已记录(即使目标 entry 当下尚未注册也会接受——一旦注册即生效)
|
|
198
172
|
* @internal 公开 API 走 `ctx.preferService()`(额外 emit service:preference-changed
|
package/dist/services.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.js","sourceRoot":"","sources":["../src/services.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"services.js","sourceRoot":"","sources":["../src/services.ts"],"names":[],"mappings":"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"}
|
package/dist/types/app.d.ts
CHANGED
package/dist/types/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/types/app.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE5D;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU;IACzB,WAAW;IACX,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/types/app.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE5D;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU;IACzB,WAAW;IACX,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB;;;;;OAKG;IACH,OAAO,CAAC,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7C,cAAc;IACd,UAAU,IAAI,IAAI,CAAC;IAEnB,uCAAuC;IACvC,aAAa,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CACpC;AAED,+BAA+B;AAC/B,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,WAAW,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uDAAuD;IACvD,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,mCAAmC;IACnC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAGhB;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,mBAAmB;IACnB,SAAS,IAAI,iBAAiB,EAAE,CAAC;IACjC,eAAe;IACf,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IACjD,sBAAsB;IACtB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACpF,WAAW;IACX,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,WAAW;IACX,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC9C,gEAAgE;IAChE,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,sEAAsE;IACtE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9G;;;;OAIG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB"}
|
package/dist/types/plugin.d.ts
CHANGED
|
@@ -23,14 +23,6 @@ export interface PluginModule {
|
|
|
23
23
|
* 适合多实例的插件:LLM adapters、embedding adapters、platform adapters、memory backends。
|
|
24
24
|
*/
|
|
25
25
|
reusable?: boolean;
|
|
26
|
-
/**
|
|
27
|
-
* 配置 Schema——core 视为 **opaque 数据**原样透传,不解释任何字段。
|
|
28
|
-
* 表单形状类型由 @aalis/schema-config 定义,渲染宿主与配置同步
|
|
29
|
-
* 政策(@aalis/runtime)自行消费。
|
|
30
|
-
*/
|
|
31
|
-
configSchema?: Record<string, unknown>;
|
|
32
|
-
/** 插件默认配置,当主配置文件中无此插件配置时使用 */
|
|
33
|
-
defaultConfig?: Record<string, unknown>;
|
|
34
26
|
/**
|
|
35
27
|
* 逃生舱:声明本插件在依赖的 provider 发生变化(被 dispose / 替换)时
|
|
36
28
|
* 必须由 core 主动级联 dispose + reapply 才能恢复正确状态。
|
|
@@ -52,8 +44,9 @@ export type PluginState = 'pending' | 'activating' | 'active' | 'disabled' | 'di
|
|
|
52
44
|
* 都收拢到这个判别联合上,让 PluginManager 只有一条状态转移路径。
|
|
53
45
|
*
|
|
54
46
|
* - service-up:某服务刚被 provide —— 可能让 pending 插件能激活
|
|
55
|
-
* - service-down:某服务刚被 unregister —— required
|
|
56
|
-
* optional
|
|
47
|
+
* - service-down:某服务刚被 unregister —— required 依赖其的要停用;
|
|
48
|
+
* optional 依赖其且声明了 requiresBounceOnDepChange 的才 bounce
|
|
49
|
+
* (默认不级联,期望下游每次访问时惰性 getService)
|
|
57
50
|
* - plugin-state-changed:插件被显式禁用/启用/重载/改配置后调用
|
|
58
51
|
* - shutdown:App.stop() 调用,按拓扑逆序 dispose 所有插件
|
|
59
52
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/types/plugin.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAI3D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACnC,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACpC;AAID,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,0BAA0B;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/types/plugin.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAI3D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACnC,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACpC;AAID,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,0BAA0B;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAInB;;;;;;;;;;;OAWG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAK5E;AAID,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,CAAC;AAElG;;;;;;;;;;GAUG;AACH,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,sBAAsB,CAAA;CAAE,GAChC;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AAEzB,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,YAAY,CAAC;IACrB,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,KAAK,EAAE,WAAW,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,oBAAoB,EAAE,CAAC;IACrC,YAAY,EAAE,oBAAoB,EAAE,CAAC;CACtC;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAW3F"}
|
package/dist/types/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/types/plugin.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,EAAE;AACF,kDAAkD;AAClD,qBAAqB;
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/types/plugin.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,EAAE;AACF,kDAAkD;AAClD,qBAAqB;AA2FrB;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkB;IAChD,4BAA4B;IAC5B,uCAAuC;IACvC,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACrD,IAAI,QAAQ,GAAG,CAAC;QAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;IACpD,OAAO;QACL,UAAU,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC;QACzC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC;KACvC,CAAC;AACJ,CAAC"}
|
package/dist/types/services.js
CHANGED
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
// 之后使用方:
|
|
19
19
|
//
|
|
20
20
|
// ```ts
|
|
21
|
-
// const m = ctx.getService('memory');
|
|
22
|
-
// const m2 = ctx.getService('memory'); // 旧式手动写法仍然可用
|
|
21
|
+
// const m = ctx.getService('memory'); // 自动推断为 MemoryService | undefined
|
|
22
|
+
// const m2 = ctx.getService<MemoryService>('memory'); // 旧式手动写法仍然可用
|
|
23
23
|
// ```
|
|
24
24
|
//
|
|
25
25
|
// ## escape hatch
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/types/services.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,gEAAgE;AAChE,EAAE;AACF,QAAQ;AACR,EAAE;AACF,mDAAmD;AACnD,EAAE;AACF,QAAQ;AACR,sCAAsC;AACtC,iCAAiC;AACjC,+BAA+B;AAC/B,6BAA6B;AAC7B,MAAM;AACN,IAAI;AACJ,MAAM;AACN,EAAE;AACF,SAAS;AACT,EAAE;AACF,QAAQ;AACR,
|
|
1
|
+
{"version":3,"file":"services.js","sourceRoot":"","sources":["../../src/types/services.ts"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,EAAE;AACF,gEAAgE;AAChE,EAAE;AACF,QAAQ;AACR,EAAE;AACF,mDAAmD;AACnD,EAAE;AACF,QAAQ;AACR,sCAAsC;AACtC,iCAAiC;AACjC,+BAA+B;AAC/B,6BAA6B;AAC7B,MAAM;AACN,IAAI;AACJ,MAAM;AACN,EAAE;AACF,SAAS;AACT,EAAE;AACF,QAAQ;AACR,yFAAyF;AACzF,oEAAoE;AACpE,MAAM;AACN,EAAE;AACF,kBAAkB;AAClB,EAAE;AACF,+BAA+B;AAC/B,4EAA4E;AAC5E,gEAAgE;AAChE,sCAAsC;AACtC,EAAE;AACF,QAAQ;AACR,EAAE;AACF,mDAAmD;AACnD,8DAA8D;AAC9D,mDAAmD"}
|