@aalis/core 0.11.0 → 0.12.1
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 +11 -2
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +49 -7
- 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 +41 -8
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +109 -31
- package/dist/context.js.map +1 -1
- package/dist/contributions.d.ts +3 -3
- package/dist/disposable-chain.d.ts +3 -1
- package/dist/disposable-chain.d.ts.map +1 -1
- package/dist/disposable-chain.js +7 -3
- 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 -1
- package/dist/plugin-activation.d.ts.map +1 -1
- package/dist/plugin-activation.js +71 -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 +68 -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 -2
- 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/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
|
@@ -44,8 +44,9 @@ export type PluginState = 'pending' | 'activating' | 'active' | 'disabled' | 'di
|
|
|
44
44
|
* 都收拢到这个判别联合上,让 PluginManager 只有一条状态转移路径。
|
|
45
45
|
*
|
|
46
46
|
* - service-up:某服务刚被 provide —— 可能让 pending 插件能激活
|
|
47
|
-
* - service-down:某服务刚被 unregister —— required
|
|
48
|
-
* optional
|
|
47
|
+
* - service-down:某服务刚被 unregister —— required 依赖其的要停用;
|
|
48
|
+
* optional 依赖其且声明了 requiresBounceOnDepChange 的才 bounce
|
|
49
|
+
* (默认不级联,期望下游每次访问时惰性 getService)
|
|
49
50
|
* - plugin-state-changed:插件被显式禁用/启用/重载/改配置后调用
|
|
50
51
|
* - shutdown:App.stop() 调用,按拓扑逆序 dispose 所有插件
|
|
51
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;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
|
|
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"}
|