@aalis/core 0.1.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 +21 -0
- package/dist/app.d.ts +166 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +348 -0
- package/dist/app.js.map +1 -0
- package/dist/config.d.ts +174 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +377 -0
- package/dist/config.js.map +1 -0
- package/dist/constants.d.ts +31 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +36 -0
- package/dist/constants.js.map +1 -0
- package/dist/context.d.ts +328 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +521 -0
- package/dist/context.js.map +1 -0
- package/dist/disposable-chain.d.ts +31 -0
- package/dist/disposable-chain.d.ts.map +1 -0
- package/dist/disposable-chain.js +66 -0
- package/dist/disposable-chain.js.map +1 -0
- package/dist/events.d.ts +64 -0
- package/dist/events.d.ts.map +1 -0
- package/dist/events.js +145 -0
- package/dist/events.js.map +1 -0
- package/dist/hooks.d.ts +49 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +102 -0
- package/dist/hooks.js.map +1 -0
- package/dist/i18n.d.ts +6 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +26 -0
- package/dist/i18n.js.map +1 -0
- package/dist/identity.d.ts +26 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +36 -0
- package/dist/identity.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -0
- package/dist/init.d.ts +20 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +455 -0
- package/dist/init.js.map +1 -0
- package/dist/llm-router.d.ts.map +1 -0
- package/dist/llm-router.js +123 -0
- package/dist/llm-router.js.map +1 -0
- package/dist/logger.d.ts +76 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +187 -0
- package/dist/logger.js.map +1 -0
- package/dist/marketplace-bootstrap.d.ts +54 -0
- package/dist/marketplace-bootstrap.d.ts.map +1 -0
- package/dist/marketplace-bootstrap.js +132 -0
- package/dist/marketplace-bootstrap.js.map +1 -0
- package/dist/mixin-registry.d.ts +34 -0
- package/dist/mixin-registry.d.ts.map +1 -0
- package/dist/mixin-registry.js +60 -0
- package/dist/mixin-registry.js.map +1 -0
- package/dist/model-ref.d.ts +22 -0
- package/dist/model-ref.d.ts.map +1 -0
- package/dist/model-ref.js +46 -0
- package/dist/model-ref.js.map +1 -0
- package/dist/pending-buffer.d.ts +46 -0
- package/dist/pending-buffer.d.ts.map +1 -0
- package/dist/pending-buffer.js +131 -0
- package/dist/pending-buffer.js.map +1 -0
- package/dist/platform-registry.d.ts +40 -0
- package/dist/platform-registry.d.ts.map +1 -0
- package/dist/platform-registry.js +64 -0
- package/dist/platform-registry.js.map +1 -0
- package/dist/plugin-activation.d.ts +43 -0
- package/dist/plugin-activation.d.ts.map +1 -0
- package/dist/plugin-activation.js +172 -0
- package/dist/plugin-activation.js.map +1 -0
- package/dist/plugin-topology.d.ts +40 -0
- package/dist/plugin-topology.d.ts.map +1 -0
- package/dist/plugin-topology.js +126 -0
- package/dist/plugin-topology.js.map +1 -0
- package/dist/plugin.d.ts +184 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +549 -0
- package/dist/plugin.js.map +1 -0
- package/dist/providers.d.ts +85 -0
- package/dist/providers.d.ts.map +1 -0
- package/dist/providers.js +2 -0
- package/dist/providers.js.map +1 -0
- package/dist/semver-mini.d.ts +20 -0
- package/dist/semver-mini.d.ts.map +1 -0
- package/dist/semver-mini.js +94 -0
- package/dist/semver-mini.js.map +1 -0
- package/dist/service-helpers.d.ts +34 -0
- package/dist/service-helpers.d.ts.map +1 -0
- package/dist/service-helpers.js +68 -0
- package/dist/service-helpers.js.map +1 -0
- package/dist/service.d.ts +145 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +279 -0
- package/dist/service.js.map +1 -0
- package/dist/types/agent.d.ts +51 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +3 -0
- package/dist/types/agent.js.map +1 -0
- package/dist/types/app.d.ts +74 -0
- package/dist/types/app.d.ts.map +1 -0
- package/dist/types/app.js +3 -0
- package/dist/types/app.js.map +1 -0
- package/dist/types/archive.d.ts +59 -0
- package/dist/types/archive.d.ts.map +1 -0
- package/dist/types/archive.js +16 -0
- package/dist/types/archive.js.map +1 -0
- package/dist/types/authority.d.ts +63 -0
- package/dist/types/authority.d.ts.map +1 -0
- package/dist/types/authority.js +3 -0
- package/dist/types/authority.js.map +1 -0
- package/dist/types/capabilities.d.ts +53 -0
- package/dist/types/capabilities.d.ts.map +1 -0
- package/dist/types/capabilities.js +87 -0
- package/dist/types/capabilities.js.map +1 -0
- package/dist/types/cli.d.ts +14 -0
- package/dist/types/cli.d.ts.map +1 -0
- package/dist/types/cli.js +3 -0
- package/dist/types/cli.js.map +1 -0
- package/dist/types/commands.d.ts +98 -0
- package/dist/types/commands.d.ts.map +1 -0
- package/dist/types/commands.js +3 -0
- package/dist/types/commands.js.map +1 -0
- package/dist/types/core.d.ts +117 -0
- package/dist/types/core.d.ts.map +1 -0
- package/dist/types/core.js +6 -0
- package/dist/types/core.js.map +1 -0
- package/dist/types/disposable-service.d.ts +31 -0
- package/dist/types/disposable-service.d.ts.map +1 -0
- package/dist/types/disposable-service.js +3 -0
- package/dist/types/disposable-service.js.map +1 -0
- package/dist/types/embedding.d.ts +7 -0
- package/dist/types/embedding.d.ts.map +1 -0
- package/dist/types/embedding.js +3 -0
- package/dist/types/embedding.js.map +1 -0
- package/dist/types/flow-control.d.ts +51 -0
- package/dist/types/flow-control.d.ts.map +1 -0
- package/dist/types/flow-control.js +12 -0
- package/dist/types/flow-control.js.map +1 -0
- package/dist/types/gateway.d.ts +24 -0
- package/dist/types/gateway.d.ts.map +1 -0
- package/dist/types/gateway.js +15 -0
- package/dist/types/gateway.js.map +1 -0
- package/dist/types/hooks.d.ts +3 -0
- package/dist/types/hooks.d.ts.map +1 -0
- package/dist/types/hooks.js +18 -0
- package/dist/types/hooks.js.map +1 -0
- package/dist/types/image-recognition.d.ts +123 -0
- package/dist/types/image-recognition.d.ts.map +1 -0
- package/dist/types/image-recognition.js +31 -0
- package/dist/types/image-recognition.js.map +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +17 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/llm.d.ts +146 -0
- package/dist/types/llm.d.ts.map +1 -0
- package/dist/types/llm.js +27 -0
- package/dist/types/llm.js.map +1 -0
- package/dist/types/memory.d.ts +62 -0
- package/dist/types/memory.d.ts.map +1 -0
- package/dist/types/memory.js +22 -0
- package/dist/types/memory.js.map +1 -0
- package/dist/types/persona.d.ts +45 -0
- package/dist/types/persona.d.ts.map +1 -0
- package/dist/types/persona.js +3 -0
- package/dist/types/persona.js.map +1 -0
- package/dist/types/platform.d.ts +126 -0
- package/dist/types/platform.d.ts.map +1 -0
- package/dist/types/platform.js +5 -0
- package/dist/types/platform.js.map +1 -0
- package/dist/types/plugin.d.ts +84 -0
- package/dist/types/plugin.d.ts.map +1 -0
- package/dist/types/plugin.js +24 -0
- package/dist/types/plugin.js.map +1 -0
- package/dist/types/service.d.ts +43 -0
- package/dist/types/service.d.ts.map +1 -0
- package/dist/types/service.js +38 -0
- package/dist/types/service.js.map +1 -0
- package/dist/types/services.d.ts +17 -0
- package/dist/types/services.d.ts.map +1 -0
- package/dist/types/services.js +41 -0
- package/dist/types/services.js.map +1 -0
- package/dist/types/session.d.ts +153 -0
- package/dist/types/session.d.ts.map +1 -0
- package/dist/types/session.js +19 -0
- package/dist/types/session.js.map +1 -0
- package/dist/types/storage.d.ts +100 -0
- package/dist/types/storage.d.ts.map +1 -0
- package/dist/types/storage.js +29 -0
- package/dist/types/storage.js.map +1 -0
- package/dist/types/tools.d.ts +39 -0
- package/dist/types/tools.d.ts.map +1 -0
- package/dist/types/tools.js +3 -0
- package/dist/types/tools.js.map +1 -0
- package/dist/types/trigger-policy.d.ts +16 -0
- package/dist/types/trigger-policy.d.ts.map +1 -0
- package/dist/types/trigger-policy.js +6 -0
- package/dist/types/trigger-policy.js.map +1 -0
- package/dist/types/vectorstore.d.ts +23 -0
- package/dist/types/vectorstore.d.ts.map +1 -0
- package/dist/types/vectorstore.js +3 -0
- package/dist/types/vectorstore.js.map +1 -0
- package/dist/types/web-search.d.ts +88 -0
- package/dist/types/web-search.d.ts.map +1 -0
- package/dist/types/web-search.js +23 -0
- package/dist/types/web-search.js.map +1 -0
- package/dist/types/webui.d.ts +137 -0
- package/dist/types/webui.d.ts.map +1 -0
- package/dist/types/webui.js +3 -0
- package/dist/types/webui.js.map +1 -0
- package/package.json +22 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/** 单条搜索结果 */
|
|
2
|
+
export interface WebSearchResult {
|
|
3
|
+
/** 条目标题 */
|
|
4
|
+
title: string;
|
|
5
|
+
/** 条目 URL */
|
|
6
|
+
url: string;
|
|
7
|
+
/** 摘要/片段(可能为空) */
|
|
8
|
+
snippet?: string;
|
|
9
|
+
/** 来源站点(可选,如 "wikipedia.org") */
|
|
10
|
+
source?: string;
|
|
11
|
+
/** 发布或更新日期(可选,ISO 字符串) */
|
|
12
|
+
publishedAt?: string;
|
|
13
|
+
}
|
|
14
|
+
/** 搜索请求参数 */
|
|
15
|
+
export interface WebSearchRequest {
|
|
16
|
+
/** 搜索关键词 */
|
|
17
|
+
query: string;
|
|
18
|
+
/** 期望返回的结果数(后端决定最大值) */
|
|
19
|
+
numResults?: number;
|
|
20
|
+
/** 语言偏好(如 'zh' / 'en'),后端可忽略 */
|
|
21
|
+
language?: string;
|
|
22
|
+
/** 搜索类型筛选(后端按 capability 声明的支持范围处理) */
|
|
23
|
+
kind?: 'web' | 'news' | 'images';
|
|
24
|
+
}
|
|
25
|
+
/** 搜索响应 */
|
|
26
|
+
export interface WebSearchResponse {
|
|
27
|
+
/** 搜索关键词(回显) */
|
|
28
|
+
query: string;
|
|
29
|
+
/** 结果列表 */
|
|
30
|
+
results: WebSearchResult[];
|
|
31
|
+
/** 后端给出的摘要/答案框(如 Serper 的 answerBox) */
|
|
32
|
+
answer?: string;
|
|
33
|
+
/** 相关问题(若后端支持) */
|
|
34
|
+
relatedQuestions?: string[];
|
|
35
|
+
/** 后端元信息(如耗时、总条数等) */
|
|
36
|
+
raw?: Record<string, unknown>;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* 网络搜索服务
|
|
40
|
+
*
|
|
41
|
+
* 实现者需至少提供 `search()`。`describeProvider()` 用于日志/WebUI 展示。
|
|
42
|
+
*/
|
|
43
|
+
export interface WebSearchService {
|
|
44
|
+
/** 执行一次搜索 */
|
|
45
|
+
search(request: WebSearchRequest): Promise<WebSearchResponse>;
|
|
46
|
+
/** 后端标识(供日志/排错用),如 'serper' */
|
|
47
|
+
readonly providerName: string;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* 网络搜索服务能力注册表
|
|
51
|
+
*
|
|
52
|
+
* 第三方插件可通过 declaration merging 追加:
|
|
53
|
+
* ```ts
|
|
54
|
+
* declare module '@aalis/core' {
|
|
55
|
+
* interface WebSearchCapabilityRegistry {
|
|
56
|
+
* Scholar: 'scholar';
|
|
57
|
+
* }
|
|
58
|
+
* }
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export interface WebSearchCapabilityRegistry {
|
|
62
|
+
/** 支持常规网页搜索(基本能力) */
|
|
63
|
+
Web: 'web';
|
|
64
|
+
/** 支持新闻搜索 */
|
|
65
|
+
News: 'news';
|
|
66
|
+
/** 支持图片搜索 */
|
|
67
|
+
Images: 'images';
|
|
68
|
+
/** 支持对结果进行 LLM 压缩/摘要 */
|
|
69
|
+
Compression: 'compression';
|
|
70
|
+
/** 返回关联问题 */
|
|
71
|
+
RelatedQuestions: 'related-questions';
|
|
72
|
+
}
|
|
73
|
+
/** 网络搜索能力字符串 union(自动包含第三方扩展) */
|
|
74
|
+
export type WebSearchCapability = WebSearchCapabilityRegistry[keyof WebSearchCapabilityRegistry];
|
|
75
|
+
/** 网络搜索内置能力常量 */
|
|
76
|
+
export declare const WebSearchCapabilities: {
|
|
77
|
+
readonly Web: "web";
|
|
78
|
+
readonly News: "news";
|
|
79
|
+
readonly Images: "images";
|
|
80
|
+
readonly Compression: "compression";
|
|
81
|
+
readonly RelatedQuestions: "related-questions";
|
|
82
|
+
};
|
|
83
|
+
declare module './capabilities.js' {
|
|
84
|
+
interface ServiceCapabilityMap {
|
|
85
|
+
'web-search': WebSearchCapability;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=web-search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-search.d.ts","sourceRoot":"","sources":["../../src/types/web-search.ts"],"names":[],"mappings":"AAUA,aAAa;AACb,MAAM,WAAW,eAAe;IAC9B,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,aAAa;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,kBAAkB;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,aAAa;AACb,MAAM,WAAW,gBAAgB;IAC/B,YAAY;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,IAAI,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;CAClC;AAED,WAAW;AACX,MAAM,WAAW,iBAAiB;IAChC,gBAAgB;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW;IACX,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,sBAAsB;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,aAAa;IACb,MAAM,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAC9D,+BAA+B;IAC/B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAID;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,2BAA2B;IAC1C,qBAAqB;IACrB,GAAG,EAAE,KAAK,CAAC;IACX,aAAa;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa;IACb,MAAM,EAAE,QAAQ,CAAC;IACjB,wBAAwB;IACxB,WAAW,EAAE,aAAa,CAAC;IAC3B,aAAa;IACb,gBAAgB,EAAE,mBAAmB,CAAC;CACvC;AAED,iCAAiC;AACjC,MAAM,MAAM,mBAAmB,GAAG,2BAA2B,CAAC,MAAM,2BAA2B,CAAC,CAAC;AAEjG,iBAAiB;AACjB,eAAO,MAAM,qBAAqB;;;;;;CAMc,CAAC;AAEjD,OAAO,QAAQ,mBAAmB,CAAC;IACjC,UAAU,oBAAoB;QAC5B,YAAY,EAAE,mBAAmB,CAAC;KACnC;CACF"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// ----- 网络搜索服务接口 -----
|
|
2
|
+
//
|
|
3
|
+
// 由 plugin-websearch-serper 等插件实现。Agent 或其他插件可通过
|
|
4
|
+
// `ctx.getService<WebSearchService>('web-search')` 获得该服务来执行搜索,
|
|
5
|
+
// 而无需关心具体后端(Serper / DuckDuckGo / Bing 等)。
|
|
6
|
+
//
|
|
7
|
+
// 多个搜索后端可同时注册,框架按 priority 选择默认实现;
|
|
8
|
+
// 若需指定特定后端(如只使用带新闻能力的后端),可通过 capability 过滤:
|
|
9
|
+
// `ctx.getService<WebSearchService>('web-search', ['news'])`
|
|
10
|
+
/** 网络搜索内置能力常量 */
|
|
11
|
+
export const WebSearchCapabilities = {
|
|
12
|
+
Web: 'web',
|
|
13
|
+
News: 'news',
|
|
14
|
+
Images: 'images',
|
|
15
|
+
Compression: 'compression',
|
|
16
|
+
RelatedQuestions: 'related-questions',
|
|
17
|
+
};
|
|
18
|
+
import { registerCapabilityProbe } from './capabilities.js';
|
|
19
|
+
registerCapabilityProbe('web-search', WebSearchCapabilities.Web, inst => typeof inst.search === 'function'
|
|
20
|
+
? true
|
|
21
|
+
: 'WebSearchService.search() is required for capability "web"');
|
|
22
|
+
// News / Images / Compression / RelatedQuestions 均由请求参数/实现内决定,不做方法探测。
|
|
23
|
+
//# sourceMappingURL=web-search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-search.js","sourceRoot":"","sources":["../../src/types/web-search.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,EAAE;AACF,iDAAiD;AACjD,+DAA+D;AAC/D,2CAA2C;AAC3C,EAAE;AACF,mCAAmC;AACnC,4CAA4C;AAC5C,+DAA+D;AAoF/D,iBAAiB;AACjB,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,GAAG,EAAE,KAAK;IACV,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,aAAa;IAC1B,gBAAgB,EAAE,mBAAmB;CACS,CAAC;AAQjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,uBAAuB,CAAC,YAAY,EAAE,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CACtE,OAAQ,IAA6B,CAAC,MAAM,KAAK,UAAU;IACzD,CAAC,CAAC,IAAI;IACN,CAAC,CAAC,4DAA4D,CAAC,CAAC;AAEpE,sEAAsE"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import type { ConfigSchema } from './core.js';
|
|
2
|
+
/**
|
|
3
|
+
* WebUI 服务 —— Web 管理后台
|
|
4
|
+
*
|
|
5
|
+
* 负责启动 HTTP 服务器,提供 REST API(插件管理、配置、权限等)
|
|
6
|
+
* 和 WebSocket(消息/日志推送),同时托管前端静态文件。
|
|
7
|
+
*
|
|
8
|
+
* 核心要求此服务必须运行。
|
|
9
|
+
* 默认由 plugin-webui 提供,第三方可替换整个实现或仅替换前端部分。
|
|
10
|
+
*/
|
|
11
|
+
export interface WebUIService {
|
|
12
|
+
/** 获取 HTTP 服务监听端口 */
|
|
13
|
+
getPort(): number;
|
|
14
|
+
/** 获取 HTTP 服务监听地址 */
|
|
15
|
+
getHost(): string;
|
|
16
|
+
/**
|
|
17
|
+
* 设置前端静态文件目录
|
|
18
|
+
* 允许外部插件在运行时替换前端
|
|
19
|
+
*/
|
|
20
|
+
setClientDir?(dir: string): void;
|
|
21
|
+
}
|
|
22
|
+
/** 统计卡片 */
|
|
23
|
+
export interface WebuiStatComponent {
|
|
24
|
+
type: 'stat';
|
|
25
|
+
/** 卡片标题 */
|
|
26
|
+
label: string;
|
|
27
|
+
/** 获取数据的后端 handler 方法名,返回 { value: string | number } */
|
|
28
|
+
source: string;
|
|
29
|
+
/** 图标标识 */
|
|
30
|
+
icon?: string;
|
|
31
|
+
}
|
|
32
|
+
/** 数据表格 */
|
|
33
|
+
export interface WebuiTableComponent {
|
|
34
|
+
type: 'table';
|
|
35
|
+
/** 表格标题 */
|
|
36
|
+
label?: string;
|
|
37
|
+
/** 获取数据的后端 handler 方法名,返回数组 */
|
|
38
|
+
source: string;
|
|
39
|
+
/** 列定义 */
|
|
40
|
+
columns: Array<{
|
|
41
|
+
key: string;
|
|
42
|
+
label: string;
|
|
43
|
+
render?: string;
|
|
44
|
+
}>;
|
|
45
|
+
/** 行操作按钮 */
|
|
46
|
+
actions?: Array<{
|
|
47
|
+
label: string;
|
|
48
|
+
method: string;
|
|
49
|
+
confirm?: string;
|
|
50
|
+
danger?: boolean;
|
|
51
|
+
}>;
|
|
52
|
+
/** 自动刷新间隔(秒),0 或不填则不自动刷新 */
|
|
53
|
+
refresh?: number;
|
|
54
|
+
}
|
|
55
|
+
/** 配置表单(复用 ConfigSchema) */
|
|
56
|
+
export interface WebuiFormComponent {
|
|
57
|
+
type: 'form';
|
|
58
|
+
/** 表单标题 */
|
|
59
|
+
label?: string;
|
|
60
|
+
/** 加载初始值的 handler 方法名 */
|
|
61
|
+
source: string;
|
|
62
|
+
/** 保存时调用的 handler 方法名 */
|
|
63
|
+
save: string;
|
|
64
|
+
/** 表单字段定义,复用 ConfigSchema */
|
|
65
|
+
schema: ConfigSchema;
|
|
66
|
+
}
|
|
67
|
+
/** 操作按钮组 */
|
|
68
|
+
export interface WebuiActionsComponent {
|
|
69
|
+
type: 'actions';
|
|
70
|
+
/** 按钮组标题 */
|
|
71
|
+
label?: string;
|
|
72
|
+
/** 按钮列表 */
|
|
73
|
+
items: Array<{
|
|
74
|
+
label: string;
|
|
75
|
+
method: string;
|
|
76
|
+
confirm?: string;
|
|
77
|
+
danger?: boolean;
|
|
78
|
+
variant?: string;
|
|
79
|
+
}>;
|
|
80
|
+
}
|
|
81
|
+
/** 键值信息面板 */
|
|
82
|
+
export interface WebuiInfoComponent {
|
|
83
|
+
type: 'info';
|
|
84
|
+
/** 面板标题 */
|
|
85
|
+
label?: string;
|
|
86
|
+
/** 获取数据的 handler 方法名,返回 Record<string, unknown> */
|
|
87
|
+
source: string;
|
|
88
|
+
}
|
|
89
|
+
/** Markdown 内容 */
|
|
90
|
+
export interface WebuiMarkdownComponent {
|
|
91
|
+
type: 'markdown';
|
|
92
|
+
/** 标题 */
|
|
93
|
+
label?: string;
|
|
94
|
+
/** 获取 markdown 文本的 handler 方法名,返回 { content: string } */
|
|
95
|
+
source: string;
|
|
96
|
+
}
|
|
97
|
+
/** 子标签页容器 */
|
|
98
|
+
export interface WebuiTabsComponent {
|
|
99
|
+
type: 'tabs';
|
|
100
|
+
/** 容器标题 */
|
|
101
|
+
label?: string;
|
|
102
|
+
/** 子标签页定义 */
|
|
103
|
+
items: Array<{
|
|
104
|
+
key: string;
|
|
105
|
+
label: string;
|
|
106
|
+
content: WebuiComponent[];
|
|
107
|
+
}>;
|
|
108
|
+
}
|
|
109
|
+
/** 所有声明式页面组件的联合类型 */
|
|
110
|
+
export type WebuiComponent = WebuiStatComponent | WebuiTableComponent | WebuiFormComponent | WebuiActionsComponent | WebuiInfoComponent | WebuiMarkdownComponent | WebuiTabsComponent;
|
|
111
|
+
/** 插件可声明的 WebUI 页面 */
|
|
112
|
+
export interface WebuiPage {
|
|
113
|
+
/** 页面唯一标识(对应前端路由/标签 key) */
|
|
114
|
+
key: string;
|
|
115
|
+
/** 页面显示名称 */
|
|
116
|
+
label: string;
|
|
117
|
+
/**
|
|
118
|
+
* 图标标识。支持两种格式:
|
|
119
|
+
* - 命名标识(如 'dashboard'):前端映射到内置图标组件
|
|
120
|
+
* - 内联 SVG(以 '<svg' 开头):前端直接渲染为图标
|
|
121
|
+
*/
|
|
122
|
+
icon?: string;
|
|
123
|
+
/** 排序权重(越小越靠前,默认 99) */
|
|
124
|
+
order?: number;
|
|
125
|
+
/**
|
|
126
|
+
* 自定义渲染器标识。
|
|
127
|
+
* 当页面需要客户端的专用组件(而非声明式 content)时,插件声明此字段。
|
|
128
|
+
* 客户端根据此标识在自身的渲染器注册表中查找对应组件:
|
|
129
|
+
* - 找到 → 使用自定义组件渲染
|
|
130
|
+
* - 未找到 → 显示「此客户端不支持该页面」的提示
|
|
131
|
+
* 这样不同 webui 客户端可独立决定支持哪些自定义页面。
|
|
132
|
+
*/
|
|
133
|
+
renderer?: string;
|
|
134
|
+
/** 声明式页面内容(不提供则使用客户端内置页面) */
|
|
135
|
+
content?: WebuiComponent[];
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=webui.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webui.d.ts","sourceRoot":"","sources":["../../src/types/webui.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webui.js","sourceRoot":"","sources":["../../src/types/webui.ts"],"names":[],"mappings":"AAAA,iCAAiC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@aalis/core",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"aalis": {
|
|
6
|
+
"core": true
|
|
7
|
+
},
|
|
8
|
+
"main": "dist/index.js",
|
|
9
|
+
"types": "dist/index.d.ts",
|
|
10
|
+
"files": [
|
|
11
|
+
"dist"
|
|
12
|
+
],
|
|
13
|
+
"dependencies": {},
|
|
14
|
+
"devDependencies": {
|
|
15
|
+
"typescript": "^5.7.0",
|
|
16
|
+
"@types/node": "^22.0.0"
|
|
17
|
+
},
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsc",
|
|
20
|
+
"dev": "tsc --watch"
|
|
21
|
+
}
|
|
22
|
+
}
|