@aalis/api-webui 0.9.3 → 0.10.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 CHANGED
@@ -1,10 +1,10 @@
1
1
  # @aalis/api-webui
2
2
 
3
- 类型/接口/能力声明包(只导出 `type` 与 `*Capabilities`,不含运行时逻辑)
3
+ 导出服务描述符(运行时值)与类型;不含服务实现
4
4
 
5
5
  ## 角色
6
6
 
7
- 类型/接口/能力声明包(只导出 `type` 与 `*Capabilities`,不含运行时逻辑)
7
+ 导出服务描述符(运行时值)与类型;不含服务实现
8
8
 
9
9
  ## 安装
10
10
 
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { UserIdentity } from '@aalis/api-authority';
2
- import type { Context } from '@aalis/core';
2
+ import type { ServiceRef } from '@aalis/core';
3
3
  import type { ConfigSchema } from '@aalis/schema-config';
4
4
  /**
5
5
  * WebUI 服务 —— Web 管理后台
@@ -26,9 +26,17 @@ export interface WebUIService {
26
26
  getPages(): Array<WebuiPage & {
27
27
  pluginName: string;
28
28
  }>;
29
- /** 按 contextId 批量清除(Context 拆卸时由 core 调用) */
30
- unregisterByPlugin(contextId: string): void;
29
+ /**
30
+ * 登记一个页面动作:宿主路由层(POST /api/page-action/:plugin/:method)在权限闸门放行后调用。
31
+ * 同一插件同名动作为替换;返回 dispose。
32
+ */
33
+ registerAction(method: string, handler: WebuiActionHandler, contextId: string): () => void;
31
34
  }
35
+ /**
36
+ * 页面动作处理函数。caller 是路由层解析出的调用者身份,可用来做业务级检查
37
+ * (如"不能委托超出自身持有的能力")。
38
+ */
39
+ export type WebuiActionHandler = (args: Record<string, unknown>, caller?: UserIdentity) => Promise<unknown>;
32
40
  /** 统计卡片 */
33
41
  export interface WebuiStatComponent {
34
42
  type: 'stat';
@@ -194,32 +202,13 @@ export interface WebuiPage {
194
202
  content?: WebuiComponent[];
195
203
  }
196
204
  /**
197
- * 通过 declaration merging 向 core 的 PluginModule 注入
198
- * 纯展示元数据字段(subsystem / extends)与 host-RPC 槽位(actions)。
199
- *
200
- * WebuiPage 注册路径为运行时 `useWebuiService(ctx).registerPage(...)`,
201
- * 不作为静态 module 字段存在。
205
+ * 通过 declaration merging 向插件定义注入展示元数据 extends。
206
+ * 页面与页面动作不是静态字段:在 apply 里经 `webuiServer.registerPage / registerAction` 登记。
202
207
  */
203
208
  declare module '@aalis/core' {
204
- interface PluginModule {
205
- /**
206
- * 子系统归属,仅用于 WebUI 分组展示。
207
- *
208
- * 可用 id 与中文 label 由本包的 `DEFAULT_SUBSYSTEM_METADATA` 提供,
209
- * 但允许使用任意自定义字符串(未匹配 metadata 时直接以 id 作为 label 显示)。
210
- */
211
- subsystem?: string;
209
+ interface PluginMeta {
212
210
  /** 声明该插件对 core 的扩展(新增事件、钩子),仅用于前端展示。 */
213
211
  extends?: ExtendDeclaration;
214
- /**
215
- * 插件 RPC 动作表 —— 供 host(webui-server 等)远程调用。
216
- *
217
- * core 不感知此字段;host 路由层(POST /api/page-action/:plugin/:method)
218
- * 在权限闸门放行后以插件自身的 `entry.context` 调用 handler。
219
- * 第三参 caller 为路由层解析出的调用者身份,handler 可用它做业务级
220
- * 检查(如"不能委托超出自身持有的能力");忽略该参数即向后兼容。
221
- */
222
- actions?: Record<string, (ctx: Context, args: Record<string, unknown>, caller?: UserIdentity) => Promise<unknown>>;
223
212
  }
224
213
  }
225
214
  declare module '@aalis/schema-config' {
@@ -236,52 +225,30 @@ declare module '@aalis/schema-config' {
236
225
  allowCustom?: boolean;
237
226
  }
238
227
  }
239
- /**
240
- * Scoped WebUI 服务:在插件 apply() 中注册页面,自动绑定到当前 ctx 生命周期。
241
- */
242
- export interface ScopedWebuiService {
243
- /** 注册页面;返回 dispose(与 ctx 生命周期绑定)。 */
244
- registerPage(page: WebuiPage): () => void;
245
- /** 获取底层 service(未就绪时为 undefined)。 */
246
- readonly raw: WebUIService | undefined;
247
- }
248
- /**
249
- * 获取 ScopedWebuiService。
250
- *
251
- * 实现委托给 `ctx.whenService('webui-server', ...)`:每次 webui-server
252
- * 重新 provide(bounce/replace)都会重新调用 `registerPage`,让插件页面
253
- * 自动重挂;上次注册的 cleanup 在 provider 下线时自动释放。
254
- */
255
- export declare function useWebuiService(ctx: Context): ScopedWebuiService;
256
228
  /**
257
229
  * 插件可以声明它对 core 做了哪些扩展,用于前端展示和文档生成。
258
230
  *
259
- * 仅是元数据描述,core 不会读取也不会校验,仅透传给 WebUI 展示。
260
- *
261
- * 字段名是 `extends`(PluginModule 契约与消费端一致);它是保留字,具名导出
262
- * 须用别名形式:
231
+ * 仅是元数据描述,core 不会读取也不会校验,仅透传给 WebUI 展示。写在 definePlugin 的 `extends` 字段里:
263
232
  *
264
233
  * @example
265
- * const ext: ExtendDeclaration = {
266
- * events: ['scheduler:tick', 'scheduler:error'],
267
- * hooks: ['schedule:before'],
268
- * };
269
- * export { ext as extends };
234
+ * definePlugin({
235
+ * name: '@aalis/plugin-scheduler',
236
+ * extends: { events: ['scheduler:tick', 'scheduler:error'], hooks: ['schedule:before'] },
237
+ * …
238
+ * });
270
239
  */
271
240
  export interface ExtendDeclaration {
272
241
  /** 该插件新增的自定义事件名 */
273
242
  events?: string[];
274
243
  /** 该插件新增的自定义钩子名 */
275
244
  hooks?: string[];
276
- /** 该插件向哪些服务混入了方法(服务名 → 方法名列表),仅用于前端展示。 */
277
- mixins?: Record<string, string[]>;
278
245
  }
279
246
  /**
280
247
  * 子系统展示目录条目。
281
248
  *
282
249
  * **职责边界**:
283
250
  * - 这是 **WebUI 展示层契约**,唯一消费者是 webui-server 的 `/api/service-groups` 路由。
284
- * - `core` 完全不知道 subsystem 概念,仅在 PluginModule 上保留一个透传字段
251
+ * - `core` 不解释 subsystem 的取值,插件定义上只有一个透传的字符串字段
285
252
  * `subsystem?: string`(不读不解释,纯粹搬运给 WebUI)。
286
253
  * - 本表只描述 **展示元数据**(中文 label / 排序 / icon),**不再写死插件归属**。
287
254
  * 归属由每个插件自己在 index.ts 中声明:`export const subsystem = 'llm';`
@@ -292,7 +259,7 @@ export interface ExtendDeclaration {
292
259
  * - webui-api 不再反向耦合具体插件 npm 名
293
260
  */
294
261
  export interface SubsystemMetadata {
295
- /** subsystem id(与 PluginModule.subsystem 对应) */
262
+ /** subsystem id(与插件定义的 subsystem 字段对应) */
296
263
  id: string;
297
264
  /** 显示名(中文 label) */
298
265
  label: string;
@@ -319,10 +286,13 @@ export interface WebuiClientProvider {
319
286
  /** 可选展示名(多前端切换/选择时用) */
320
287
  label?: string;
321
288
  }
322
- declare module '@aalis/core' {
323
- interface ServiceTypeMap {
324
- 'webui-server': WebUIService;
325
- 'webui-client': WebuiClientProvider;
326
- }
289
+ export declare const webuiClient: import("@aalis/core").ServiceDescriptor<WebuiClientProvider, ServiceRef<WebuiClientProvider>>;
290
+ /** `webui-server` 的绑定接口:页面与页面动作的登记自动归属这次激活 */
291
+ export interface BoundWebui extends ServiceRef<WebUIService> {
292
+ /** 登记页面:提供者换人自动重挂,随激活撤回 */
293
+ registerPage(page: WebuiPage): () => void;
294
+ /** 登记页面动作:同名替换,提供者换人自动重挂,随激活撤回 */
295
+ registerAction(method: string, handler: WebuiActionHandler): () => void;
327
296
  }
297
+ export declare const webuiServer: import("@aalis/core").ServiceDescriptor<WebUIService, BoundWebui>;
328
298
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -3,24 +3,7 @@
3
3
  // 此包提供 @aalis/core 中 WebuiPage skeleton 的完整扩展,
4
4
  // 以及所有声明式页面组件类型。
5
5
  // 任何需要声明 webuiPages 的插件应从本包导入相关类型。
6
- /**
7
- * 获取 ScopedWebuiService。
8
- *
9
- * 实现委托给 `ctx.whenService('webui-server', ...)`:每次 webui-server
10
- * 重新 provide(bounce/replace)都会重新调用 `registerPage`,让插件页面
11
- * 自动重挂;上次注册的 cleanup 在 provider 下线时自动释放。
12
- */
13
- export function useWebuiService(ctx) {
14
- const contextId = ctx.id || 'unknown';
15
- return {
16
- registerPage(page) {
17
- return ctx.whenService('webui-server', svc => svc.registerPage(page, contextId));
18
- },
19
- get raw() {
20
- return ctx.getService('webui-server');
21
- },
22
- };
23
- }
6
+ import { defineService, serviceRef } from '@aalis/core';
24
7
  /**
25
8
  * 默认子系统元数据。
26
9
  *
@@ -46,4 +29,20 @@ export const DEFAULT_SUBSYSTEM_METADATA = Object.freeze([
46
29
  { id: 'user', label: '用户', order: 140 },
47
30
  { id: 'external', label: '外部', order: 160 },
48
31
  ]);
32
+ // ----- 服务描述符(按激活绑定;调用型:绑定接口是 ServiceRef)-----
33
+ export const webuiClient = defineService('webui-client');
34
+ export const webuiServer = defineService('webui-server', port => {
35
+ const pages = port.registrar({
36
+ key: page => page.key,
37
+ register: (service, page) => service.registerPage(page, port.id),
38
+ });
39
+ const actions = port.registrar({
40
+ key: action => action.method,
41
+ register: (service, action) => service.registerAction(action.method, action.handler, port.id),
42
+ });
43
+ return serviceRef(port, {
44
+ registerPage: (page) => pages.add(page),
45
+ registerAction: (method, handler) => actions.add({ method, handler }),
46
+ });
47
+ });
49
48
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,EAAE;AACF,+CAA+C;AAC/C,iBAAiB;AACjB,mCAAmC;AAmPnC;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,MAAM,SAAS,GAAG,GAAG,CAAC,EAAE,IAAI,SAAS,CAAC;IACtC,OAAO;QACL,YAAY,CAAC,IAAe;YAC1B,OAAO,GAAG,CAAC,WAAW,CAAe,cAAc,EAAE,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QACjG,CAAC;QACD,IAAI,GAAG;YACL,OAAO,GAAG,CAAC,UAAU,CAAe,cAAc,CAAC,CAAC;QACtD,CAAC;KACF,CAAC;AACJ,CAAC;AAoDD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAiC,MAAM,CAAC,MAAM,CAAC;IACpF,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE;IACvC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;IACtC,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;IAC1C,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;IAC1C,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;IACtC,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE;IAClD,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;IACxC,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;IACzC,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;IACvC,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;IACzC,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;IACzC,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;IAC1C,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;IACzC,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;IAC5C,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;IAC5C,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;IACvC,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;CAC5C,CAAC,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,6 @@
1
1
  {
2
2
  "name": "@aalis/api-webui",
3
- "version": "0.9.3",
3
+ "version": "0.10.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -20,18 +20,18 @@
20
20
  ],
21
21
  "dependencies": {
22
22
  "@aalis/api-authority": ">=0.5.0 <1.0.0",
23
- "@aalis/schema-config": ">=0.9.0 <1.0.0"
23
+ "@aalis/schema-config": ">=0.12.0 <1.0.0"
24
24
  },
25
25
  "devDependencies": {
26
26
  "@types/node": "^22.0.0",
27
27
  "typescript": "^5.7.0",
28
- "@aalis/core": "0.14.0"
28
+ "@aalis/core": "0.17.0"
29
29
  },
30
30
  "aalis": {
31
31
  "types": true
32
32
  },
33
33
  "peerDependencies": {
34
- "@aalis/core": ">=0.2.0 <1.0.0"
34
+ "@aalis/core": ">=0.17.0 <1.0.0"
35
35
  },
36
36
  "keywords": [
37
37
  "aalis",